#include <iostream>
#include <unordered_map>
#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 unordered_map<int, int>cache; cache[1] = 1;
if(!cache.count(n)) cache[n] = getLength(getNextTerm(n))+1;
return cache[n];
}
int main()
{
int i, j; while(cin >> i >> j) {
int currMax = 0;
for(int n = min(i, j); n <= max(i, j); n++)
currMax = max(currMax, getLength(n));
cout << i << ' ' << j << ' ' << currMax << '\n';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBnZXROZXh0VGVybShpbnQgbikKewoJaWYobiUyID09IDApIHJldHVybiBuLzI7CgllbHNlIHJldHVybiAzKm4rMTsKfQoKaW50IGdldExlbmd0aChpbnQgbikKewoJc3RhdGljIHVub3JkZXJlZF9tYXA8aW50LCBpbnQ+Y2FjaGU7IGNhY2hlWzFdID0gMTsKCQoJaWYoIWNhY2hlLmNvdW50KG4pKSBjYWNoZVtuXSA9IGdldExlbmd0aChnZXROZXh0VGVybShuKSkrMTsKCXJldHVybiBjYWNoZVtuXTsKfQoKaW50IG1haW4oKQp7CglpbnQgaSwgajsgd2hpbGUoY2luID4+IGkgPj4gaikgewoJCWludCBjdXJyTWF4ID0gMDsKCQlmb3IoaW50IG4gPSBtaW4oaSwgaik7IG4gPD0gbWF4KGksIGopOyBuKyspCgkJCWN1cnJNYXggPSBtYXgoY3Vyck1heCwgZ2V0TGVuZ3RoKG4pKTsKCQljb3V0IDw8IGkgPDwgJyAnIDw8IGogPDwgJyAnIDw8IGN1cnJNYXggPDwgJ1xuJzsKCX0KCXJldHVybiAwOwp9