#include #include using namespace std; long long int next(long long int n) { if (n % 2 == 0) { return n/2; } else { return 3*n + 1; } } int main(int argc, char** argv) { map mapa; while (true) { mapa.clear(); long long int a, b; int aa, bb; scanf("%d %d", &aa, &bb); if ((aa==0) && (bb==0)) break; a = aa; b = bb; int citac = 0; do { mapa[a]=citac++; if(a!=1) a = next(a); else break; } while (true); citac = 0; map::iterator it; do { it = mapa.find(b); if (it!=mapa.end()) { /* if (it->second < min) min = it->second;*/ break; } b = next(b); citac++; } while (b!=1); printf("%d needs %d steps, %d needs %d steps, they meet at %lld\n", aa, it->second, bb, citac, b); } return 0; }