#include <bits/stdc++.h>
using namespace std;
const int N = 600010;
int n;
pair<int, int> p[N];
map<int, int> mp;
set<int> se;
int b[N], cnt;
long long c[N];
long long st[N][21];
void init() {
  for (int i = 1; i <= cnt; i++) st[i][0] = c[i];
  for (int j = 1; j < 21; j++) {
    for (int i = 1; i + (1 << j) - 1 <= cnt; i++) {
      st[i][j] = min(st[i][j - 1], st[i + (1 << (j - 1))][j - 1]);
    }
  }
}
long long query(int l, int r) {
  int k = (int)log2(r - l + 1);
  return min(st[l][k], st[r - (1 << k) + 1][k]);
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> p[i].first >> p[i].second;
    se.insert(p[i].first);
    se.insert(p[i].second);
    se.insert(p[i].second + 1);
  }
  for (auto i : se) {
    b[++cnt] = i;
    mp[i] = cnt;
  }
  for (int i = 1; i <= n; i++) {
    p[i].first = mp[p[i].first];
    p[i].second = mp[p[i].second];
    c[p[i].first]++;
    c[p[i].second + 1]--;
  }
  for (int i = 1; i < N; i++) {
    c[i] += c[i - 1];
  }
  init();
  for (int i = 1; i <= n; i++) {
    if (query(p[i].first, p[i].second) > 1) {
      cout << i;
      return 0;
    }
  }
  cout << -1;
}
