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

class collatz {

  public static void main(String[] args) {

    HashSet<Integer> setA = new HashSet();
    HashSet<Integer> setB = new HashSet();

    //setA.add(5);
    //setA.add(6);
    //System.out.println(setA);

    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    String s = null;
    try {
    s = reader.readLine();
    } catch(Exception e){
    }
    //System.out.println(s);


    int a = -1;
    int b = -1;
    String[] ss = s.split(" ");
    a = Integer.parseInt(ss[0]);
    //System.out.println(a);
    b = Integer.parseInt(ss[1]);

  while((a != 0) && (b != 0)){

    setA.clear();
    setB.clear();

    int aa = a;
    int bb = b;
    //System.out.println(b);
    setA.add(a);
    //if(setB.contains(a)){ System.out.println("ano"); } else { System.out.println("ne"); }
    setB.add(b);
    //if(setA.contains(b)){ System.out.println("ano"); } else { System.out.println("ne"); }
    boolean win = false;
    int secretNumber = -1;
    while(!win){
    //  while((a < b) && (!setA.contains(b))) {
    //    if(b % 2 == 0){ b = b / 2;
    //    } else { b = 3 * b + 1; }
    //    setB.add(b);
    //    //System.out.print("b:" + b + " "); //!!!!!
    //    if(setA.contains(b)){ win = true; secretNumber = b; }
    //  }
    //  while((a > b) && (!setB.contains(a)) && (!win)) {
    //    if(a % 2 == 0){ a = a / 2;
    //    } else { a = 3 * a + 1; }
    //    setA.add(a);
    //    //System.out.print("a:" + a + " "); //!!!!!
    //    if(setB.contains(a)){ win = true; secretNumber = a; }
    //  }
      if(b != 1){
        if(b % 2 == 0){ b = b / 2;
        } else { b = 3 * b + 1; }
        setB.add(b);
        //System.out.print("b:" + b + " "); //!!!!!
        if(setA.contains(b)){ win = true; secretNumber = b; }
      }
      if((a != 1) && (!win)){
        if(a % 2 == 0){ a = a / 2;
        } else { a = 3 * a + 1; }
        setA.add(a);
        //System.out.print("a:" + a + " "); //!!!!!
        if(setB.contains(a)){ win = true; secretNumber = a; }
      }
    }
    //System.out.println(setA);
    //System.out.println(setB);
    int stepsA = 0;
    int stepsB = 0;
    a = aa;
    b = bb;
    while(a != secretNumber){
      stepsA++;
      if(a % 2 == 0){ a = a / 2;
      } else { a = 3 * a + 1; }
      //System.out.print(a + " ");
    }
    //System.out.println();
    while(b != secretNumber){
      stepsB++;
      if(b % 2 == 0){ b = b / 2;
      } else { b = 3 * b + 1; }
      //System.out.print(b + " ");
    }
    System.out.println(aa + " needs " + stepsA + " steps, " + bb + " needs " + stepsB + " steps, they meet at " + secretNumber);

    s = null;
    try {
    s = reader.readLine();
    } catch(Exception e){
    }
    //System.out.println(s);
    a = -1;
    b = -1;
    ss = s.split(" ");
    a = Integer.parseInt(ss[0]);
    //System.out.println(a);
    b = Integer.parseInt(ss[1]);

  }
  //System.out.println("Konec!");

  }

}
