#include <bits/stdc++.h>
using namespace std;
struct data {
  int a, b;
};
bool comp(const data &x, const data &y) {
  if (x.b != y.b)
    return x.b > y.b;
  else
    return x.a < y.a;
}
int main() {
  int N;
  cin >> N;
  vector<data> v(N);
  for (int i = 0; i < N; i++) cin >> v[i].a >> v[i].b;
  sort(v.begin(), v.end(), comp);
  int p = 1;
  for (int i = 0; i < N; i++) {
    p++;
    if (v[i].a <= p && p <= v[i].b) {
      continue;
    } else if (v[i].a > p) {
      p--;
      if (N - i < v[i].a - 1) {
        break;
      } else {
        for (int j = i + 1; j < i + v[i].a - 1; j++) {
          if (v[j].a > v[i].a || v[i].a > v[j].b) {
            cout << p - 1 << endl;
            return 0;
          }
        }
        p += v[i].a - 1;
        i += v[i].a - 2;
      }
    } else if (v[i].b < p) {
      p--;
      break;
    }
  }
  cout << p - 1 << endl;
}
