#include #include #include #include int main() { int a; int b; int i; int j; int pole1[10000000]; int pole2[10000000]; while((scanf("%d %d", &a, &b)) && !(a == 0 && b == 0)) { pole1[0] = a; pole2[0] = b; for (i=1; (i < (1000000 -1)) && (pole1[i-1] > 1); i++) { if (pole1[i-1] % 2 == 0) pole1[i] = pole1[i-1] / 2; else pole1[i] = pole1[i-1] * 3 + 1; } for (j=1; (j < (1000000 -1)) && (pole2[j-1] > 1); j++) { if (pole2[j-1] % 2 == 0) pole2[j] = pole2[j-1] / 2; else pole2[j] = pole2[j-1] * 3 + 1; } i--; j--; for ( ; i >= 0 && j >= 0 && pole1[i] == pole2[j]; i--, j--) { } printf("%d needs %d steps, %d needs %d steps, they meet at %d\n", a, i+1, b, j+1, pole1[i+1]); } return 0; }