#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int getNextTerm(int n)
{
if(n%2 == 0) return n/2;
else return 3*n+1;
}
int getLength(int n)
{
static vector<int>cache(1000000, 0); cache[1] = 1;
if(n >= 1000000) return getLength(getNextTerm(n))+1;
if(cache[n] == 0) cache[n] = getLength(getNextTerm(n))+1;
return cache[n];
}
int main()
{
vector<vector<int>> results(1000000, vector<int>(1000000, 0));
for(int i = 1; i < 1000000; i++) results[i][i] = getLength(i);
for(int i = 1; i < 1000000; i++) for(int j = i+1; j < 1000000; j++) {
results[i][j] = results[j][i] = max(getLength(j), results[i][j-1]);
}
int i, j; while(cin >> i >> j) {
cout << i << ' ' << j << ' ' << results[i][j] << '\n';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGdldE5leHRUZXJtKGludCBuKQp7CglpZihuJTIgPT0gMCkgcmV0dXJuIG4vMjsKCWVsc2UgcmV0dXJuIDMqbisxOwp9CgppbnQgZ2V0TGVuZ3RoKGludCBuKQp7CglzdGF0aWMgdmVjdG9yPGludD5jYWNoZSgxMDAwMDAwLCAwKTsgY2FjaGVbMV0gPSAxOwoJCglpZihuID49IDEwMDAwMDApIHJldHVybiBnZXRMZW5ndGgoZ2V0TmV4dFRlcm0obikpKzE7CgkKCWlmKGNhY2hlW25dID09IDApIGNhY2hlW25dID0gZ2V0TGVuZ3RoKGdldE5leHRUZXJtKG4pKSsxOwoJcmV0dXJuIGNhY2hlW25dOwp9CgppbnQgbWFpbigpCnsKCXZlY3Rvcjx2ZWN0b3I8aW50Pj4gcmVzdWx0cygxMDAwMDAwLCB2ZWN0b3I8aW50PigxMDAwMDAwLCAwKSk7Cglmb3IoaW50IGkgPSAxOyBpIDwgMTAwMDAwMDsgaSsrKSByZXN1bHRzW2ldW2ldID0gZ2V0TGVuZ3RoKGkpOwoJZm9yKGludCBpID0gMTsgaSA8IDEwMDAwMDA7IGkrKykgZm9yKGludCBqID0gaSsxOyBqIDwgMTAwMDAwMDsgaisrKSB7CgkJcmVzdWx0c1tpXVtqXSA9IHJlc3VsdHNbal1baV0gPSBtYXgoZ2V0TGVuZ3RoKGopLCByZXN1bHRzW2ldW2otMV0pOwoJfQoJCglpbnQgaSwgajsgd2hpbGUoY2luID4+IGkgPj4gaikgewoJCWNvdXQgPDwgaSA8PCAnICcgPDwgaiA8PCAnICcgPDwgcmVzdWx0c1tpXVtqXSA8PCAnXG4nOwoJfQoJcmV0dXJuIDA7Cn0=