#ver4 #一番答えが大きくなるものを選ぶ(貪欲) #(i,j)を辞書順に調べる #解を変える適当焼きなまし import time t0=time.time() import random random.seed(14) N=int(input()) A=[] B=[] cons=5*10**17 for _ in range(N): a,b=map(int,input().split()) A.append(a) B.append(b) A_base=[a for a in A] B_base=[b for b in B] op_cnt=0 #costは低ければ低いほどよい def calculate_cost(a,b): return max(abs(a-cons),abs(b-cons)) def op(u,v): global A global B a,b=A[u],A[v] c,d=B[u],B[v] A[u],A[v]=(a+b)//2,(a+b)//2 B[u],B[v]=(c+d)//2,(c+d)//2 cost=calculate_cost(A[0],B[0]) ans=[] while op_cnt<50: u=-1 v=-1 best_cost=cost for i in range(N): for j in range(i+1,N): if(i==0): new_cost=calculate_cost((A[i]+A[j])//2,(B[i]+B[j])//2) if(new_cost random.random()): # if(cost