#include <bits/stdc++.h>
using namespace std;
struct node {
  int l, r, id;
} a[200010];
int n;
bool cmp(node a, node b) {
  if (a.l < b.l)
    return true;
  else if (a.l == b.l) {
    if (a.r < b.r)
      return true;
    else if (a.r == b.r) {
      if (a.id < b.id) return true;
    }
  }
  return false;
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d%d", &a[i].l, &a[i].r), a[i].id = i;
  sort(a + 1, a + n + 1, cmp);
  for (int i = 2; i <= n; i++) {
    if (a[i].r <= a[i - 1].r) {
      printf("%d\n", a[i].id);
      return 0;
    }
    if (a[i].l <= a[i - 1].l && a[i - 1].r <= a[i].r) {
      printf("%d\n", a[i - 1].id);
      return 0;
    }
    a[i].l = max(a[i].l, a[i - 1].r + 1);
  }
  printf("-1\n");
  return 0;
}
