import java.util.*; // Yuki 208 // https://yukicoder.me/problems/no/208 public class Main { public static void main (String[] args) throws InterruptedException { Scanner in = new Scanner(System.in); long x = in.nextLong(); long y = in.nextLong(); long x1 = in.nextLong(); long y1 = in.nextLong(); long answer = Math.max(Math.abs(x), Math.abs(y)); if (isBetweenOriginandXY(x, y, x1, y1) && isSameSlope(x, y, x1, y1)) { answer++; } System.out.println(answer); } public static boolean isBetweenOriginandXY(long x, long y, long x1, long y1) { if (x < 0 && 0 < y && x1 < 0 && 0 < y1) { return x < x1 && y1 < y; } else if (x < 0 && y < 0 && x1 < 0 && y1 < 0) { return x < x1 && y < y1; } else if (0 < x && 0 < y && 0 < x1 && 0 < y1) { return x1 < x && y1 < y; } else if (0 < x && y < 0 && 0 < x1 && y1 < 0) { return x1 < x && y < y1; } else { return false; } } public static boolean isSameSlope(long x, long y, long x1, long y1) { return Math.abs(x) * Math.abs(y1) == Math.abs(y) * Math.abs(x1); } }