#IMP. The Imp

The Imp

An Imp jumps on an infinite chessboard. Moves possible for the Imp are described by two pairs of integers: (a,b) and (c,d) - from square (x,y) the Imp can move to one of the squares: (x+a,y+b), (x-a,y-b), (x+c,y+d), (x-c,y-d). We want to know for which square different from (0,0) to which the Imp can jump from (0,0) (possibly in many moves) the value |x|+|y| is the lowest.

Task

Write a program which

  • reads from standard input two pairs (a,b) and (c,d) of integers, different from (0,0), describing moves of the Imp,
  • determines a pair of integers (x,y) different from (0,0), for which the Imp can jump (possibly in many moves) from square (0,0) to square (x,y) and for which the value |x|+|y| is the lowest.
  • writes out to standard output the value |x|+|y|.

Input

Ten test cases. Each test consists of four numbers a,b,c,d in one line, separated by spaces.
-100000 <= a, b, c, d <= 100000

Output

For every test case your program should write a single line with a number equal the lowest possible value |x|+|y|.

Example

Input:
13 4 17 5
[and 9 test cases more]
Output:
2
[and 9 answers more]