output_description: Print the answer.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      x_1 y_1
      x_2 y_2
      :
      x_N y_N
attempt: import sys
  
  sys.setrecursionlimit(10**9)
  
  
  # input = sys.stdin.readline    ####
  def int1(x):
      return int(x) - 1
  
  
  def II():
      return int(input())
  
  
  def MI():
      return map(int, input().split())
  
  
  def MI1():
      return map(int1, input().split())
  
  
  def LI():
      return list(map(int, input().split()))
  
  
  def LI1():
      return list(map(int1, input().split()))
  
  
  def LLI(rows_number):
      return [LI() for _ in range(rows_number)]
  
  
  def MS():
      return input().split()
  
  
  def LS():
      return list(input())
  
  
  def LLS(rows_number):
      return [LS() for _ in range(rows_number)]
  
  
  def printlist(lst, k=" "):
      print(k.join(list(map(str, lst))))
  
  
  INF = float("inf")
  # from math import ceil, floor, log2
  # from collections import deque, defaultdict
  # from itertools import combinations as comb, combinations_with_replacement as comb_w, accumulate, product, permutations
  # from heapq import heapify, heappop, heappush
  # import numpy as np    # cumsum
  # from bisect import bisect_left, bisect_right
  
  
  def solve():
      N = II()
      Z = []
      for i in range(N):
          x, y = MI()
          Z.append((x - y, x + y))
      # print(Z)
      minx = miny = INF
      maxx = maxy = -INF
      for z in Z:
          minx = min(minx, z[0])
          maxx = max(maxx, z[0])
          miny = min(miny, z[1])
          maxy = max(maxy, z[1])
      print(max(maxx - minx, maxy - miny))
  
  
  if __name__ == "__main__":
      solve()
  
problem_description: Statement
  
  There are N points on the 2D plane, i-th of which is located on (x_i, y_i).
  There can be multiple points that share the same coordinate. What is the
  maximum possible Manhattan distance between two distinct points?
  
  Here, the _Manhattan distance_ between two points (x_i, y_i) and (x_j, y_j) is
  defined by |x_i-x_j| + |y_i-y_j|.
samples: [{"input": "3\n    1 1\n    2 4\n    3 2", "output": "4\n    \n\nThe Manhattan distance between the first point and the second point is\n|1-2|+|1-4|=4, which is maximum possible.\n\n* * *"}, {"input": "2\n    1 1\n    1 1", "output": "0"}]