N=int(input()) X=[list(map(int,input().split())) for i in range(N)] for i in range(N): X[i]=[X[i][0]+X[i][1],X[i][0]-X[i][1]] L,R=0,10**13 while L>1 l1,l2,r1,r2=X[0][0],X[0][1],X[0][0],X[0][1] for i in range(N): l1=min(l1,X[i][0]) l2=min(l2,X[i][1]) r1=max(r1,X[i][0]) r2=max(r2,X[i][1]) C=0 for i in range(N): if abs(l1-X[i][0])<=2*M and abs(l2-X[i][1])<=2*M: C+=1 elif abs(r1-X[i][0])<=2*M and abs(r2-X[i][1])<=2*M: C+=1 if C==N: R=M continue C=0 for i in range(N): if abs(l1-X[i][0])<=2*M and abs(r2-X[i][1])<=2*M: C+=1 elif abs(r1-X[i][0])<=2*M and abs(l2-X[i][1])<=2*M: C+=1 if C==N: R=M else: L=max(L+1,M) print(L)