#include<stdio.h>
#define MAX 999999
int as=0,bs=0,lk=0;
int porovnaj(int *a,int *b,int i)
{
  int k;

  for (k=0;k<i;k++)
  {
    if (a[i]==b[k])
     {
	as=i;
	bs=k;
	lk=b[k];
        return b[k];
     }
  }
 return 0;
}

void krok(int *pole,int i)
{
 int a=pole[i];
 i++;
 if (1 & a)
	 {	  
	  pole[i]=a+a+a+1; 	  	
	 }
	else
	{
	 pole[i]=a>>1;	 
	}
}

void postupnost(int a,int b)
{
 int e[MAX],f[MAX],i=0;
 e[0]=a;
 f[0]=b;
 int k=0;
 do
 {
	krok(e,i);        
        krok(f,i);
 }while ((k=porovnaj(e,f,++i)) == 0);


}
int main ()
{
	int a,b;
	while (scanf("%d %d",&a,&b))
	{
	 getchar();
	 if ((a!=0) && (b!=0))
 	 {
           if (1 & a) 
           postupnost(a,b);
          else 
          postupnost(b,a);
	   printf("%d needs %d steps, %d needs %d steps, they meet at %d\n",a,as,b,bs,lk);
         }
         else 
            break;
	}
	
	return 0;
}
