#include #include using namespace std; map M; int main() { int a,b; scanf("%d %d ",&a,&b); while(a+b!=0) { M.clear(); long long p=a; M[p]=0; long long pom=0; while(p!=1) { if(p%2==0) p/=2; else p=3*p+1; M[p]=++pom; } bool t=true; p=b; pom=0; while(t) { if(M.find(p)!=M.end()) {t=false;} else if(p%2==0) p/=2; else p=p*3+1; pom++; } printf("%d needs %lld steps, %d needs %lld steps, they meet at %lld\n",a,M[p],b,pom-1,p); scanf("%d %d ",&a,&b); } return 0; }