Last year the world's largest square was built in Berland. It is known that the square can be represented as an infinite plane with an introduced Cartesian system of coordinates. On that square two sets of concentric circles were painted. Let's call the set of concentric circles with radii 1, 2, ..., K and the center in the point (z, 0) a (K, z)-set. Thus, on the square were painted a (N, x)-set and a (M, y)-set. You have to find out how many parts those sets divided the square into.

Input

The first line contains integers N, x, M, y. (1 ≤ N, M ≤ 100000, - 100000 ≤ x, y ≤ 100000, x ≠ y).

Output

Print the sought number of parts.

Examples

Input

1 0 1 1


Output

4


Input

1 0 1 2


Output

3


Input

3 3 4 7


Output

17

Note

Picture for the third sample:

<image>
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
		Scanner in;
		PrintWriter pw;
		
		public void run () throws Exception {
            in = new Scanner(System.in);
            pw = new PrintWriter(System.out);

            int n = in.nextInt();
            int x = in.nextInt();
            int m = in.nextInt();
            int y = in.nextInt();
            
            int r = Math.abs(x-y);
            if(n<m){
            	int t = n;
            	n = m;
            	m = t; 
            }
            long res = 1 + n;
            
            if(r<=m) res++;
            
            for(int i=1;i<=m;i++) if(r+i>n) res++;
            for(int i=2;i<=n;i++){
            	int num = 1;
            	
            	int from = 1;
            	int to = m;
            	
            	from = Math.max(from, r-i+1);
            	from = Math.max(from, i-r);
            	
            	to = Math.min(to, r+i-1);
            	
            	if(from==to) num = 2;
            	else if(from<=to){
            		num=2;
            		num+=2*(to-from);
            	}
            	
            	res += (num - 1);
            }

            

            pw.println(res);
            pw.close();
        }
        public static void main(String[] args) throws Exception {
                new Main ().run();
        }
}