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
#include <bits/stdc++.h>
#define FOR(i, a, b) for(int i = (a); i <= (b); ++i)
#define RFOR(i, a, b) for(int i = (a); i >= (b); --i)
#define in insert
#define pb push_back
#define f first
#define s second
#define ll long long
#define ull unsigned long long
#define V vector
#define S set
#define eb emplace_back
#define P pair
#define MS multiset
#define BS bitset
using namespace std;

void solve() {
    ll n, m, k; cin >> n >> m >> k;
    vector<pair<ll, ll>> pr(1), pr2(1);
    bool tf = false;
    FOR(i, 1, m) {
        ll a, b; cin >> a >> b;
        if(k >= a && k <= b) tf = true;
        pr.pb({a, b});
    }
    if(tf == false) pr.pb({k, k});
    sort(pr.begin(), pr.end());
    ll pop = pr[1].f;
    FOR(i, 2, pr.size() - 1) {
        if(pr[i - 1].s != pr[i].f - 1) {
            pr2.pb({pop, pr[i - 1].s});
            pop = pr[i].f;
        }
    }
    pr2.pb({pop, pr[m].s});
    sort(pr2.begin(), pr2.end());
    ll res = LONG_LONG_MAX, wyn = 0;
    FOR(i, 1, pr2.size() - 1) {
        ll akt1 = pr2[i].f - 1;
        ll akt2 = pr2[i].s + 1;
        if(akt1 > 0) {
            if(abs(akt1 - k) < res) {
                res = abs(akt1 - k);
                wyn = akt1;
            }
        }
        if(akt2 <= n) {
            if(abs(akt2 - k) < res) {
                res = abs(akt2 - k);
                wyn = akt2;
            }
        }
    }
    cout << wyn;
}

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    solve();
    return 0;
}