1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <bits/stdc++.h>
using namespace std;
#define ll long long

ll oo=1e18;
ll n,m,s;

ll better(ll a, ll b){
    if (a>b)swap(a,b);
    if (abs(s-a)<=abs(s-b))return a;
    return b;
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin >> n >> m >> s;
    vector<pair<ll,ll>> prz;
    for (ll i = 1,l,p; i<=m; i++){
        cin >> l >> p;
        prz.push_back({l,p});
    }
    sort(prz.begin(),prz.end());
    vector<pair<ll,ll>> good;
    good.push_back(prz[0]);
    for (ll i = 1; i<m; i++){
        if (prz[i].first==good.back().second+1){
            pair<ll,ll> tmp=good.back();
            good.pop_back();
            good.push_back({tmp.first,prz[i].second});
        }
        else good.push_back(prz[i]);
    }
    ll ans=-oo;
    for (auto [l,p] : good){
        if (l>1)ans=better(l-1,ans);
        if (p<n)ans=better(p+1,ans);
    }
    cout << ans << '\n';
}