n = gets.to_i

max = 0
arr = []
x, y = gets.split(" ").map(&:to_i)
8.times { arr << [x, y] }

(n-1).times do
  x, y = gets.split(" ").map(&:to_i)
  # N
  xx, yy = arr[0]
  if y > yy
    arr[0] = [x, y]
  end
  # NE
  xx, yy = arr[1]
  if y > yy || x > xx 
    arr[1] = [x, y]
  end
  # E
  xx, yy = arr[2]
  if x > xx
    arr[2] = [x, y]
  end
  # SE
  xx, yy = arr[3]
  if y < yy || x > xx 
    arr[3] = [x, y]
  end
  # S
  xx, yy = arr[4]
  if y < yy 
    arr[4] = [x, y]
  end
  # SW
  xx, yy = arr[5]
  if y < yy || x < xx 
    arr[5] = [x, y]
  end
  # W
  xx, yy = arr[6]
  if x < xx
    arr[6] = [x, y]
  end
  # NW
  xx, yy = arr[7]
  if y > yy || x < xx 
    arr[7] = [x, y]
  end
end

max = 0
arr.each do |x, y|
  arr.each do |xx, yy|
    dist = (x - xx).abs + (y - yy).abs
    max = dist if max < dist
  end
end

puts max
