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
def find_nearest_free_building(n, m, s, intervals):
    # Tworzymy listę zajętych budynków
    occupied = set()
    for l, r in intervals:
        for i in range(l, r + 1):
            occupied.add(i)

    # Szukamy najbliższego wolnego budynku
    left = s - 1
    right = s + 1

    while True:
        if left >= 1 and left not in occupied:
            return left
        if right <= n and right not in occupied:
            return right
        left -= 1
        right += 1

# Przykład użycia
if __name__ == "__main__":
    # Wczytanie danych wejściowych
    n, m, s = map(int, input().split())
    intervals = [tuple(map(int, input().split())) for _ in range(m)]

    # Wywołanie funkcji i wyświetlenie wyniku
    result = find_nearest_free_building(n, m, s, intervals)
    print(result)