from sys import stdin input = stdin.readline INF = 1<<60 N = int(input()) HW = [list(map(int, input().split())) for _ in range(N)] minH = INF maxH = -INF minW = INF maxW = -INF for h, w in HW: h, w = h+w, h-w minH = min(minH, h) maxH = max(maxH, h) minW = min(minW, w) maxW = max(maxW, w) def func(a, b, c, d): ans = [] for h, w in HW: h, w = h+w, h-w if not a <= h <= b or not c <= w <= d: ans.append((h, w)) return ans def func2(A): if not A: return -INF minH = INF maxH = -INF minW = INF maxW = -INF for h, w in A: minH = min(minH, h) maxH = max(maxH, h) minW = min(minW, w) maxW = max(maxW, w) return max((maxH-minH)/2, (maxW-minW)/2) def solve(d): A = func(minH, minH+d*2, minW, minW+d*2) B = func(minH, minH+d*2, maxW-d*2, maxW) C = func(maxH-d*2, maxH, minW, minW+d*2) D = func(maxH-d*2, maxH, maxW-d*2, maxW) return min(func2(A), func2(B), func2(C), func2(D)) <= d left = -1 right = 10**12 while left+1 < right: mid = (left+right)//2 if not solve(mid/2): left = mid else: right = mid print(right)