class Solution(object):
def merge(self, intervals):
intervals.sort(key = lambda x: x[0])
merged = []
for interval in intervals:
if len(merged)==0 or interval[0] > merged[-1][-1]:
merged.append(interval)
else:
merged[-1][-1] = max(merged[-1][-1], interval[-1])
return merged
n = int(input())
m1=list(map(int,input().split()))
result = []
for y in range(0, n):
for x in range(0, 2):
if x == 0:
result.append([])
result[y].append(m1[x + y * 2])
m = result
s = Solution()
res = s.merge(m)
output = []
for i in range(0, len(res)):
for j in range(0, 2):
output.append(res[i][j])
print(" ".join(str(i) for i in output))