#P3669. 第3题-王炸或

第3题-王炸或

题目内容

给定正整数 nn 和整数 KK ,考虑所有有序整数对 (a,b)(a,b) ,满足 1a,bn1≤a,b≤n(ab)K(a丨b)≤K ,其中 aba丨b 表示 aabb 的按位或。

请计算满足条件的数对总数。由于答案可能很大,请将答案对 (109+7)(10^9+7) 取模后输出。

名词解释:按位或:两个二进制数对应位执行逻辑或运算,记作 xyx丨y ,例如 53=75丨3=7

输入描述

第一行输入整数 t(1t104)t(1≤t≤10^4) ,表示数据组数。 接下来 tt 行,每行输入两个整数 n,K(1n1018,0K1018)n,K(1≤n≤10^{18},0≤K≤10^{18})

输出描述

对于每组测试数据,输出一行整数,表示满足条件的有序数对个数。由于答案可能很大,请将结果对 (109+7)(10^9+7) 取模后输出。

样例1

输入

3
5 3
5 1
10 5

输出

9
1
17

说明

在这个样例中:

n=5,K=3n=5,K =3 时,(a,b)(a,b) 满足条件的有 a,ba,b∈{1,2,31,2,3},共 3×3=93×3=9 对;

n=6,K=1n=6,K=1 时,只有 (1,1)(1,1) 满足,结果为 11