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
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pll;

vector<pll> v, united;

int main(){
    cin.tie(0);
    ios_base::sync_with_stdio(0);
    ll n, s, l, r;
    int k;
    cin >> n >> k >> s;
    for(int i = 0 ; i < k ; i++){
        cin >> l >> r;
        v.push_back({l, r});
    }
    sort(v.begin(), v.end());
    united.push_back(v.front());
    for(int i = 1 ; i < k ; i++){
        if(v[i].first == united.back().second + 1){
            pll segment = {united.back().first, v[i].second};
            united.pop_back();
            united.push_back(segment);
        }else{
            united.push_back(v[i]);
        }
    }
    for(pll p : united){
        if(p.first <= s && s <= p.second){
            if((s - p.first <= p.second - s && p.first != 1) || p.second == n){
                cout << p.first - 1 << '\n';
            }else{
                cout << p.second + 1 << '\n';
            }
        }
    }
}