#include <bits/stdc++.h>
using namespace std;
struct Pair {
  int a, b;
  Pair() : a(0), b(0) {}
  Pair(int a, int b) : a(a), b(b) {}
  bool operator<(const Pair &p) const {
    return a < p.a ? true : (a > p.a ? false : b < p.b);
  }
};
bool isMaxBCorrect(const vector<Pair> &arr) {
  for (int i = arr.size() - 2; i >= 0; --i) {
    if (arr[i].a <= arr[i + 1].b) return true;
    if (arr[i].b > arr[i + 1].b) return false;
  }
  return true;
}
int main(int argc, char const *argv[]) {
  int n = 0;
  scanf("%d\n", &n);
  vector<Pair> arr;
  for (int i = 0; i < n; ++i) {
    int a, b;
    scanf("%d %d\n", &a, &b);
    arr.push_back(Pair(a, b));
  }
  sort(arr.begin(), arr.end());
  if (isMaxBCorrect(arr)) {
    printf("%d\n", arr[arr.size() - 1].b);
  } else {
    printf("%d\n", arr[arr.size() - 1].a);
  }
  return 0;
}
