数列
题目描述
小琪非常喜欢数列,因此她出了一道数列问题。
有两个整数 d,m ,找到这样的数列 a, 满足如下条件
- 数列 a 的长度为 n,n≥1
- 1≤a1<a2<...<an≤d
- 定义数组一个长度为 n 的数组 c:c1=a1 , ∀i>1,ci=ci−1⊕ai , ⊕ 表示二进制异或 。数组 c 应该满足 c1<c2<...<cn 的限制条件
请你求出满足条件的数列有多少个?由于结果较大,请输出答案模 m 的结果
输入格式
第一行一个数字 t(1≤t≤100) ,表示测试数据数
接下来 t 行,每行 2 个整数 d,m(1≤d,m≤109)
注意: m 不一定是质数
输出格式
输出包括 t 行,每行一个整数表示答案
样例输入
3
5 999996
6 99995
7 9994
样例输出
17
23
29
数据范围
所有数据保证 1≤t≤100,1≤d,m≤109