import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;


public class collatz {
	public static int[] zvetsovac(int[] pole){
		int[] nove = new int[2*pole.length];
		for(int i=0;i<pole.length;i++){
			nove[i] = pole[i];
		}
		return nove;
	}
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int[][] vstup = new int[1][2];
		int i=0;
		String cokoliv;
		do{
			int[][] tmp = vstup;
			vstup = new int [vstup.length+1][2];
			for(int j=0;j<tmp.length;j++){
				vstup[j] = tmp[j];
			}
			cokoliv = br.readLine();
			vstup[i][0] = Integer.parseInt(cokoliv.substring(0,cokoliv.indexOf(" ")));
			vstup[i][1] = Integer.parseInt(cokoliv.substring(cokoliv.indexOf(" ")+1,cokoliv.length()));
			i++;
		} while(vstup[i-1][0] != 0 && vstup[i-1][1] != 0);
		int[] prvni = new int[2];
		int[] druhy = new int[2];
		for(int j=0;j<i-1;j++){
			prvni[0] = vstup[j][0];
			for(int k=1;k<prvni.length;k++){
				if(prvni.length-1==k){
					prvni = zvetsovac(prvni);
				}
				if(prvni[k-1]%2==0){
					prvni[k] = prvni[k-1]/2;
				} else {
					prvni[k] = 3*prvni[k-1]+1;
				}
				if(prvni[k]==1){
					break;
				}
			}
			druhy[0] = vstup[j][1];
			for(int k=1;k<druhy.length;k++){
				if(druhy.length-1==k){
					druhy = zvetsovac(druhy);
				}
				if(druhy[k-1]%2==0){
					druhy[k] = druhy[k-1]/2;
				} else {
					druhy[k] = 3*druhy[k-1]+1;
				}
				if(druhy[k]==1){
					break;
				}
			}
			int pom1=-1;
			int pom2=-1;
			int pom3=-1;
			for(int k=0;k<prvni.length;k++){
				for(int l=0;l<druhy.length;l++){
					if(prvni[k]==druhy[l]){
						pom1=k;
						pom2=l;
						pom3=prvni[k];
						break;
					}
				}
				if(pom1==k){
					break;
				}
			}
			System.out.println(vstup[j][0]+" needs "+pom1+" steps, "+vstup[j][1]+" needs "+pom2+" steps, they meet at "+pom3);
		}
	}
}