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
#include <algorithm>
#include<iostream>
#include<string>
#include<set>
#include<vector>
#include<map>
#include <bits/ranges_algo.h>

using namespace std;

typedef long long ll;
ll S,ans =1'000'000'000'000'000'000;
void chicken(ll x) {
    if (abs(x-S)<abs(ans - S))
        ans = x;
}
int main () {
    ll N, K ;
    cin >> N >> K >> S;
    pair<ll, ll> arr[K+2];
    for (int i = 0; i < K; i++)
        cin >> arr[i].first >> arr[i].second;
    arr[K].first = -1'000'000'000'000'000'000; arr[K].second = 0;
    arr[K+1].first = +N+1; arr[K+1].second= 1'000'000'000'000'000'000 ;
    sort(arr, arr+K+2);
    for (int i = 1; i <= K; i++) {
        if (arr[i].first -1 > arr[i-1].second) chicken(arr[i].first -1);
        if (arr[i].second +1 < arr[i+1].first) chicken(arr[i].second +1);
    }
    cout << ans << endl;
}