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|.

Constraints

* 2 \leq N \leq 2 \times 10^5
* 1 \leq x_i,y_i \leq 10^9
* All values in input are integers.

Input

Input is given from Standard Input in the following format:


N
x_1 y_1
x_2 y_2
:
x_N y_N


Output

Print the answer.

Examples

Input

3
1 1
2 4
3 2


Output

4


Input

2
1 1
1 1


Output

0
import java.util.*;
import java.io.*;
public class Main {
    static Scanner sc = new Scanner(System.in);
    static PrintWriter out = new PrintWriter(System.out);
    static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    long mod = 998244353;
    int n = 1;
    int[] dat;
    int default_value = 0;
    public static void main(String[] args) throws Exception {
        Main main = new Main();
        // int t = sc.nextInt();
        int t= 1;
        while(t-->0){
            out.println(main.solve());
        }
        out.flush();
    }
    long solve() throws Exception {
        int n = sc.nextInt();
        int[][] rec = new int[n][2];
        for(int i=0; i<n; i++){
            rec[i] = new int[]{sc.nextInt(), sc.nextInt()};
        }
        Arrays.sort(rec, (o1, o2)->(o1[0]-o2[0])); // sort according to increasing order of x[i]
        long plus = rec[0][0]+rec[0][1], minus = rec[0][0]-rec[0][1];
        long ans = 0;
        for(int i=1; i<n;i++){
            long temp_plus = rec[i][0]+rec[i][1], temp_minus = rec[i][0]-rec[i][1];
            ans = Math.max(ans, temp_plus-plus);
            ans = Math.max(ans, temp_minus-minus);
            plus = Math.min(plus, temp_plus);
            minus = Math.min(minus, temp_minus);
        }
        return ans;
    }

    int paIn(String s){return Integer.parseInt(s);}
}