import java.util.*;
import java.io.*;

public class collatz {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		HashMap<Long, Long> sequenceA;
		HashMap<Long, Long> sequenceB;
		StringTokenizer st;
		long a,b,k, origA, origB, stepsA, stepsB,meet;
		boolean done;
		while(true){
			st = new StringTokenizer(br.readLine());
			a = Long.parseLong(st.nextToken());
			b = Long.parseLong(st.nextToken());
			sequenceA = new HashMap<Long, Long>();
			sequenceB = new HashMap<Long, Long>();
			if(a == 0 && b == 0){
				break;
			}
			origA = a; 
			origB = b;
			k = 0;
			done = false;
			while(true){
				if(!sequenceA.containsKey(a))
					sequenceA.put(a, k);
				if(!sequenceB.containsKey(b))
					sequenceB.put(b, k);
				
				if(sequenceB.containsKey(a)){
					stepsB = sequenceB.get(a);
					stepsA = k;
					meet = a;
					break;
				}

				if(sequenceA.containsKey(b)){
					stepsA = sequenceA.get(b);
					stepsB = k;
					meet = b;
					break;
				}

				a = next(a); 
				b = next(b);				
				k++;
			}

			System.out.println(origA + " needs " + stepsA + " steps, " + origB + " needs " + stepsB + " steps, they meet at " + meet);
		}

	}

	public static long next(long x){
		if(x % 2 == 0){
			return x/2;
		} else {
			return 3*x+1;
		}

	}

}
