计算二进制不同位个数

Description

我们已经知道在计算机中所有数据都是以二进制形式存在的,那么现在对于两个short(16位)无符号整数x,y,z的二进制表达有多少个位不同呢?(**数据类型要求:unsigned short,不合法的输入要求输出-1,如超出位数范围,测试数目小于等于0)

Input

输入包括多组数据,第一行输入n表示有n(n<10)组数据进行测试,接下来n行每行包括两个无符号short类型整数,用空格隔开。

Output

对于每组数据,输出他们二进制表示位不同的个数。如有n行输出n行数据的不同位个数,隔行输出。

Sample Input

2
1999 2299
1652 2489

Sample Output

7
9

Sample Input

-4

Sample Output

-1