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
#include <bits/stdc++.h>

using namespace std;

#define ll long long 
#define ld long double

const ll inf = 1000000000000000000LL;

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

    ll n;
    ll m, s;
    cin >> n >> m >> s;


    vector<pair<ll, ll>> v(m);
    for (int i = 0; i < m; i++) cin >> v[i].first >> v[i].second;

    sort(v.begin(), v.end());

    pair<ll, ll> ans = {inf, inf};
    for (int i = m - 2; i >= 0; i--) {
        if (v[i + 1].first == v[i].second + 1) continue;
        ans = min(ans, make_pair(abs(s - v[i + 1].first + 1), v[i + 1].first - 1));
        ans = min(ans, make_pair(abs(s - v[i].second - 1), v[i].second + 1));
    }
    if (v[m - 1].second < n) ans = min(ans, make_pair(v[m - 1].second + 1 - s, v[m - 1].second + 1));
    if (v[0].first > 1) ans = min(ans, make_pair(s - v[0].first + 1, v[0].first - 1));

    cout << ans.second;

    return 0;
}