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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pll pair<long long, long long>
constexpr int maxm = 1e3 + 7;
vector<pll> intervals;
ll m,t1,t2,n,s;
ll LEFT_ANS, RIGHT_ANS;
int main(){
    cin>>n>>m>>s;
    LEFT_ANS = 0;
    RIGHT_ANS = 0;
    for(int i = 0 ; i < m; i++){
        cin>>t1>>t2;
        intervals.push_back({t1,t2});
    }

    bool switch_side = 0;
    sort(intervals.begin(), intervals.end());
    for(int i = 0; i < m; i++){
        //auto interv = intervals[i];
       //
       //  cerr<<intervals[i].first<<" "<<intervals[i].second<<endl;
        if(intervals[i].first <= s && s <= intervals[i].second){
            //cerr<<"ZNALAZLEM \n";
           // cerr<<intervals[i].first<<" "<<intervals[i].second<<endl;

            for(int j = i ; j < m; j++){
                if(j == m-1){
                    RIGHT_ANS = intervals[j].second + 1ll;
                    break;
                }
                if(intervals[j].second + 1ll!= intervals[j+1].first){
                    RIGHT_ANS = intervals[j].second + 1ll;
                    break;
                }
            }
            for(int j = i ; j >= 0; j--){
                if(j == 0){
                    LEFT_ANS = intervals[j].first - 1ll;
                    break;
                }
                if(intervals[j].first != intervals[j-1].second + 1ll){
                    LEFT_ANS = intervals[j].first - 1ll;
                    break;
                }
            }
        }


    }

    if(LEFT_ANS == 0){
        LEFT_ANS = -1e12 - 7;
    }
    if(RIGHT_ANS == n+1){
        RIGHT_ANS = 1e12 + 7;
    }
   // cerr<<" L "<<LEFT_ANS<<endl;
   // cerr<<" r "<<RIGHT_ANS<<endl;
    if(s - LEFT_ANS < RIGHT_ANS - s){
        cout<<LEFT_ANS<<endl;
    }else if(s - LEFT_ANS > RIGHT_ANS - s){
        cout<<RIGHT_ANS<<endl;
    }else{
        cout<<LEFT_ANS<<endl;
    }
    return 0;
}