import java.util.Scanner; public class Main { // 默认不能完成转换 private static int result = -1; public static void main(String[] args){ Scanner in = new Scanner(System.in); while(in.hasNext()){ solution(in); } } /** * 模拟法: DFS遍历所有情况 * @param in */ private static void solution(Scanner in){ int a = in.nextInt(); int b = in.nextInt(); int A = in.nextInt(); int B = in.nextInt(); dfs(a, b, A, B, 0); System.out.println(result); } /** * DFS * @param a * @param b * @param A * @param B * @param ops */ private static void dfs(int a, int b, int A, int B, int ops){ // 不能完成转换 if(a>A || b>B){ return; } // 完成转换 更新次数 if(a==A && b==B){ if(result == -1){ result = ops; }else{ result = Math.min(result, ops); } return; } // 红色按钮 dfs(a+1, b+1, A, B, ops+1); // 蓝色按钮 dfs(a*2, b*2, A, B, ops+1); } }