The Problem

一个考古学家正在发掘古代的一座城市时,不小心被一个部分毁坏的石墙绊倒了。那个石墙上有数行奇异的数。这些数的前几位完整无缺,但不幸地,其余位的数字由于侵蚀作用而无法辨认。尽管如此,他注意到每一行完好的数字都像是2的幂的前几位,他就猜想这个石墙上原先的所有数都是2的幂。为了验证自己的想法,他选择了能看清楚的一些数写成列表,并把列表交给你,请你求出最小的2的幂使幂的前若干位与他提供的列表中的数一致。
  所以你必须写一个程序,对于给定的整数N,求出最小的指数E使这个数的前若干位与N相同。注意:N的长度必须小于2^E的长度的一半。如N=1,当E等于4时,虽然2^4=16,但因为1的长度等于16的长度的一半,所以不满足题上的条件,而只有在E等于7时,2^7=128才满足题意。

输入

输入包括多组测试数据,每组测试数据对应输入的一行,每行包括一个整数N(1<=N<=100)。当N=0时输入结束,并且这组数据不包括在需要计算的数据中。

输出

对于输入的每一个数N,输出最小的正数E,使2^E的前若干位是N。(可以保证最后的结果E不会大于30)

样例输入

1
2
10
0

样例输出

7
8
20