#include <bits/stdc++.h>
using namespace std;
struct node {
  int l, r;
} seg[100010];
int main() {
  int N;
  int i;
  int l, r;
  while (~scanf("%d", &N)) {
    for (i = 0; i < N; i++) {
      scanf("%d%d", &seg[i].l, &seg[i].r);
      if (i == 0) {
        l = seg[i].l;
        r = seg[i].r;
      } else {
        if (seg[i].l < l) {
          l = seg[i].l;
        }
        if (seg[i].r > r) {
          r = seg[i].r;
        }
      }
    }
    for (i = 0; i < N; i++) {
      if (seg[i].l == l && seg[i].r == r) break;
    }
    if (i < N)
      printf("%d\n", i + 1);
    else
      printf("-1");
  }
  return 0;
}
