1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
n, m, s = map(int, input().split()) 
occupied_intervals = [tuple(map(int, input().split())) for _ in range(m)]  
occupied_intervals.sort()
min_distance = float('inf')
best_building = -1
for direction in [-1, 1]:
    current_building = s + direction
    while 1 <= current_building <= n:
        occupied = False
        for l, r in occupied_intervals:
            if l <= current_building <= r:
                occupied = True
                break
        if not occupied:
            distance = abs(s - current_building)
            if distance < min_distance or (distance == min_distance and current_building < best_building):
                min_distance = distance
                best_building = current_building
            break  
        current_building += direction
print(best_building)