import java.util.*;
import java.*;
import java.util.List;

public class collatz
{
	public static void main(String[] args)
	{	
		for(;;){
		int a = 0;
		int b = 0; 
		try{
			a = System.in.read() - '0';			
			int in = System.in.read();
			while(in != ' '){
				a = a * 10 + (in - '0');
				in = System.in.read();
			}

			b = System.in.read() - '0';			
			in = System.in.read();
			while(in != '\n'){
				b = b * 10 + (in - '0');
				in = System.in.read();
			}
		}catch(Exception ex){}
		
	
		if(a == 0 && b == 0)
		{
			break;
		}

		List<Integer> ph = fillCollins(a);
		List<Integer> co = fillCollins(b);
		int phil = findSamePhil(ph,co);		

		System.out.println(a + " needs " + findIndex(ph,phil) +" steps, " + b + " needs " + findIndex(co,phil) + " steps, " + "they meet at "+phil);
		
	}
		
	}

	private static int findIndex(List<Integer> a, int value)
	{
		int position = 0;
		for(int i : a)
		{
			if(i == value)
			{
				break;
			}
			position++;		
		}
		return position;
	}


	private static List<Integer> fillCollins(int a)		
	{
		int phil = a;
		List<Integer> collins = new ArrayList<Integer>();
		collins.add(phil);

		while(phil != 1)
		{
			if(phil % 2 == 0)
			{
				phil = phil / 2;					
			}
			else
			{
				phil = phil*3+1;
			}
			collins.add(phil);	
		}

		return collins;
	}

	private static int findSamePhil(List<Integer> a, List<Integer> b)
	{
		int samePhil = 0;
		boolean added = false;
		boolean gotCollins = false;
		for(int i : a)
		{
			for(int j : b)
			{
				if(i == j)
				{
					if(i > 1) {
						samePhil = i;
						added = true;
						break;
						
					}
					
				}
			}
			if(added)
			{
				break;
			}
		}
		return samePhil;
	}
}
