#include<iostream>
#include<map>

using namespace std;

int main()
{
	map<long,int> mapa;
	long A=0,B=0,x;
	int pocet=0; 
	while(1)
	{
		mapa.clear();
		A=1;B=1;
		//scanf("%l %l",A,B);
		cin>>A>>B;
		if(!((A==0)&&(B==0)))
		{
			x=A;
			pocet=1;
			mapa[x]=0;
			while(1)
			{
				if(x%2==0)
				{
					x=x/2;
					mapa[x]=pocet;
				}
				else
				{
					x=3*x+1;
					mapa[x]=pocet;
				}
				pocet++;
				if(x==1) break;
			}
			mapa[1]=pocet;
			x=B;
			pocet=0;
			if(mapa.find(x)!=mapa.end())
			{
				cout<<A<<" needs "<<mapa[x]<<" steps, "<<B<<" needs "<<pocet<<" steps, they meet at "<<x<<endl;
				continue;
			}
			pocet++;
			while(1)
			{
				if(x%2==0)
				{
					x=x/2;
					if(mapa.find(x)!=mapa.end())
					{
						cout<<A<<" needs "<<mapa[x]<<" steps, "<<B<<" needs "<<pocet<<" steps, they meet at "<<x<<endl;
						break;
					}
				}
				else
				{
					x=3*x+1;
					if(mapa.find(x)!=mapa.end())
					{
						cout<<A<<" needs "<<mapa[x]<<" steps, "<<B<<" needs "<<pocet<<" steps, they meet at "<<x<<endl;
						break;
					}
				}
				pocet++;
			}
			
			fflush(stdin);
		}
		else
		{
			break;
		}
	}

	return 0;
}
