
小苯有一个可重的数字集合

,初始时,集合中恰好有两个正整数

和

。

现在,小苯可以执行若干轮操作,每一轮操作他都会从

中选择一个数字

和另一个数字

,并从下述四种中选择一种进行:

将

与

进行位与运算(

)的结果加入集合。

将

与

进行位或运算(

)的结果加入集合。

将

与

进行位异或运算(

)的结果加入集合。

将

与

的最大公约数(

)加入集合。

小苯想知道,最少需要经过多少轮操作,才能使得自己的数字集合中出现数字

,请你帮他算一算吧。

如果您需要更多位运算相关的知识,可以参考
OI-Wiki的相关章节。

最大公约数,指两个整数共有约数中最大的一个。例如,

和

的公约数有

,其中最大的约数是

,因此
%3D6)
。
输入描述:
每个测试文件均包含多组测试数据。第一行输入一个整数
代表数据组数,每组测试数据描述如下:
在一行上输入两个正整数
代表集合中的初始数字。
输出描述:
对于每一组测试数据,新起一行。输出一个整数,代表最少需要经过的轮数。