//http://ja.doukaku.org/120/　投稿用
using System;
class Program {
	static void Main(string[] args) {
		long ticks = DateTime.Now.Ticks;//時間記録
		double z = Math.Pow(2, 20);//2^20

		int step = 0;//最大ステップ数
		double n = 0;//ステップが最大のn

		for(double i = 1; i <= z; i++) {//2^20までループ
			int stepTmp = fStep(i);
			if(step < stepTmp) {//大きければ更新
				step = stepTmp;
				n = i;
			}
		}
		Console.WriteLine("f(" + n + ")=" + step);
		Console.WriteLine((DateTime.Now.Ticks - ticks) / 10000L + "ms");
		Console.ReadLine();
	}

	static int fStep(double z) {
		int step = 0;
		double n = z;
		while(n != 1) {//1になるまで
			if(n % 2 == 0) n /= 2;//偶数だったら
			else n = n * 3 + 1;//奇数だったら
			step++;//ステップを数える
		}
		return step;
	}
}