#include #define VELIKOST 50000000 int main ( void ) { int na, nb, pa, pb, steps; while(true) { int a[VELIKOST] = {0}; int b[VELIKOST]= {0}; scanf("%d%d", &na, &nb); if(!na && !nb) break; pa = na; pb = nb; a[na] = 1; b[nb] = 1; steps = 1; while(true) { if(b[na] > 0) { printf("%d needs %d steps, %d needs %d steps, they meet at %d\n", pa, a[na]-1, pb, b[na]-1, na); break; } if(a[nb] > 0) { printf("%d needs %d steps, %d needs %d steps, they meet at %d\n", pa, a[nb]-1, pb, b[nb]-1, nb); break; } ++steps; if(na != 1) { if(na % 2 == 0) na /= 2; else na = 3 * na + 1; if(na >= VELIKOST) return 0; a[na] = steps; } if(nb != 1) { if(nb % 2 == 0) nb /= 2; else nb = 3 * nb + 1; if(nb >= VELIKOST) return 0; b[nb] = steps; } } } return 0; }