#include #include using namespace std; int main() { int p1, p2; scanf("%d%d", &p1, &p2); while (p1 + p2) { int t1 = p1, t2 = p2; map m1; map m2; m1[p1] = 1; m2[p2] = 1; int pos = 1; while (!(m1[p2] || m2[p1])) { pos++; if (p1 % 2 == 0) p1 /= 2; else p1 = 3 * p1 + 1; if (!m1[p1]) m1[p1] = pos; if (p2 % 2 == 0) p2 /= 2; else p2 = 3 * p2 + 1; if (!m2[p2]) m2[p2] = pos; } if (m1[p2]) printf("%d needs %d steps, %d needs %d steps, they meet at %d\n", t1, m1[p2] - 1, t2, m2[p2] - 1, p2); if (m2[p1]) printf("%d needs %d steps, %d needs %d steps, they meet at %d\n", t1, m1[p1] - 1, t2, m2[p1] - 1, p1); scanf("%d%d", &p1, &p2); } return 0; }