// Runs in 0.03 sec
#include <cstdint>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main();
typedef uint_fast32_t number;
typedef uint_fast32_t sequencelength;
const size_t cachesize = 0x100000;
vector<sequencelength> t(cachesize, 0);
typedef uint_fast32_t index;
number indextonumber(index);
index numbertoindex(number);
const number maxcachednumber = indextonumber(cachesize-1);
void arrange(number&, number&);
sequencelength getlength(number);
int main()
{
ios_base::sync_with_stdio(false);
number i, j;
while(cin >> i >> j)
{
cout << i << ' ' << j << ' ';
sequencelength maxlength = 0;
for(arrange(i, j); i<=j; ++i)
if(getlength(i) > maxlength)
maxlength = getlength(i);
cout << maxlength << '\n';
}
return 0;
}
sequencelength getlength(number i)
{
number next = i%2 == 0 ? i/2 : 3*i+1;
if(i>maxcachednumber)
return getlength(next)+1;
if(t[numbertoindex(i)] == 0)
t[numbertoindex(i)] = i == 1 ? 1 : getlength(next) + 1;
return t[numbertoindex(i)];
}
void arrange(number &i, number &j)
{
if(i > j)
swap(i, j);
}
number indextonumber(index i)
{
return i+1;
}
index numbertoindex(number i)
{
return i-1;
}