#include #define ull unsigned ll #define ll long long #define ld long double #define INFL (ll)3e18 #define INF (int)2e9 #define MOD (ll)998244353 #define MODO (ll)(1e9+7) using namespace std; templateistream&operator>>(istream&is,vector&v); templateistream&operator>>(istream&is,tuple& t); templateistream&operator>>(istream&is,pair&p){is>>p.first>>p.second;return is;} templateistream&operator>>(istream&is,vector&v){for(T&in:v)is>>in;return is;} templateistream& operator>>(istream& is, tuple& t) {apply([&](auto&... args) {((is >> args), ...);},t);return is;} int main(void){ ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; map> e; vector f; int a,b; for(int i = 0;i < n;i++){ cin >> a >> b; e[a].push_back(b); f.push_back(a); } sort(f.begin(),f.end()); set r; deque d; d.push_back(1); r.insert(1); while(!d.empty()){ int t = d.front(); d.pop_front(); auto lb = lower_bound(f.begin(),f.end(),t); if(lb != f.begin()){ lb = prev(lb); if(!r.count(*lb)){ r.insert(*lb); d.push_back(*lb); } } if(e.count(t)){ for(auto i:e[t]){ if(!r.count(i)){ r.insert(i); d.push_back(i); } } } } cout << *r.rbegin() << endl; }