import bisect
def smartInterval(intervals, n):
ans = [-1] * n
start_times = sorted((intervals[i][0], i) for i in range(n))
for i in range(n):
current_end = intervals[i][1]
idx = bisect.bisect_left(start_times, (current_end,))
if idx < n:
ans[i] = start_times[idx][1]
return ans
