A coordinate line has *n* segments, the *i*-th segment starts at the position *l*<sub class="lower-index">*i*</sub> and ends at the position *r*<sub class="lower-index">*i*</sub>. We will denote such a segment as [*l*<sub class="lower-index">*i*</sub>, *r*<sub class="lower-index">*i*</sub>].

You have suggested that one of the defined segments covers all others. In other words, there is such segment in the given set, which contains all other ones. Now you want to test your assumption. Find in the given set the segment which covers all other segments, and print its number. If such a segment doesn't exist, print -1.

Formally we will assume that segment [*a*, *b*] covers segment [*c*, *d*], if they meet this condition *a* ≤ *c* ≤ *d* ≤ *b*.
The first line contains integer *n* (1 ≤ *n* ≤ 10<sup class="upper-index">5</sup>) — the number of segments. Next *n* lines contain the descriptions of the segments. The *i*-th line contains two space-separated integers *l*<sub class="lower-index">*i*</sub>, *r*<sub class="lower-index">*i*</sub> (1 ≤ *l*<sub class="lower-index">*i*</sub> ≤ *r*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>) — the borders of the *i*-th segment.

It is guaranteed that no two segments coincide.
if __name__ == '__main__':
    n = int(input())
    S = []
    for i in range(n):
        S.append(list(map(int, input().split()))+[i+1])
    S.sort()

    min_a =  S[0][0]
    max_b = 0
    for x in S:
        if max_b < x[1]:
            max_b = x[1]


    for p in range(n):
        if S[p][0] == min_a and S[p][1] == max_b:
            print(S[p][2])
            exit()

    print(-1)





