import java.util.*;

public class Fish {
    static Scanner sc = new Scanner(System.in);

    static TreeSet<Point> sortX = new TreeSet<>((o1, o2) -> {
        int res = o1.x - o2.x;
        if (res == 0) {
            res = o1.y - o2.y;
        }
        return res;
    });
    static TreeSet<Point> sortXDesc = new TreeSet<>((o1, o2) -> {
        int res = o2.x - o1.x;
        if (res == 0) {
            res = o2.y - o1.y;
        }
        return res;
    });
    static TreeSet<Point> sortY = new TreeSet<>((o1, o2) -> {
        int res = o1.y - o2.y;
        if (res == 0) {
            res = o1.x - o2.x;
        }
        return res;
    });
    static TreeSet<Point> sortYDesc = new TreeSet<>((o1, o2) -> {
        int res = o2.y - o1.y;
        if (res == 0) {
            res = o2.x - o1.x;
        }
        return res;
    });

    public static void main(String[] args) {

        int n = sc.nextInt();

        for (int i = 0; i < n; i++) {
            int x = sc.nextInt();
            int y = sc.nextInt();
            Point p = new Point(x, y);
            sortX.add(p);
            sortXDesc.add(p);
            sortY.add(p);
            sortYDesc.add(p);
        }


        for (int i = 0; i < n / 4 - 1; i++) {
            Point integerPointEntry = sortX.pollFirst();
            sortXDesc.remove(integerPointEntry);
            sortY.remove(integerPointEntry);
            sortYDesc.remove(integerPointEntry);

            integerPointEntry = sortXDesc.pollFirst();
            sortX.remove(integerPointEntry);
            sortY.remove(integerPointEntry);
            sortYDesc.remove(integerPointEntry);

            integerPointEntry = sortY.pollFirst();
            sortXDesc.remove(integerPointEntry);
            sortX.remove(integerPointEntry);
            sortYDesc.remove(integerPointEntry);

            integerPointEntry = sortYDesc.pollFirst();
            sortXDesc.remove(integerPointEntry);
            sortY.remove(integerPointEntry);
            sortX.remove(integerPointEntry);
        }

        Point first = sortX.pollFirst();
        sortXDesc.remove(first);
        sortY.remove(first);
        sortYDesc.remove(first);

        first = sortX.pollFirst();
        sortXDesc.remove(first);
        sortY.remove(first);
        sortYDesc.remove(first);

        Point second = sortY.first();

        int tempX = (int) Math.pow(first.x - second.x, 2);
        int tempY = (int) Math.pow(first.y - second.y, 2);

        double tempA = Math.sqrt(tempX + tempY);

        Point third = sortYDesc.first();

        int tempX2 = (int) Math.pow(second.x - third.x, 2);
        int tempY2 = (int) Math.pow(second.y - third.y, 2);

        double tempB = Math.sqrt(tempX2 + tempY2);

        System.out.println((int)(tempA * tempB));

    }

    static class Point {
        int x;
        int y;

        public Point(int x, int y) {
            this.x = x;
            this.y = y;
        }

        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            Point point = (Point) o;
            return x == point.x && y == point.y;
        }

        @Override
        public int hashCode() {
            return Objects.hash(x, y);
        }
    }

}
