CF BUDDY
← Problems·

1329B · Dreamoon Likes Sequences

1700 · bitmasks, combinatorics, math

Problem: Dreamoon likes sequences very much. So he created a problem about the sequence that you can't find in OEIS:

You are given two integers d,md, m, find the number of arrays aa, satisfying the following constraints:

  • The length of aa is nn, n1n \ge 1
  • 1a1<a2<<and1 \le a_1 < a_2 < \dots < a_n \le d
  • Define an array bb of length nn as follows: b1=a1b_1 = a_1, i>1,bi=bi1ai\forall i > 1, b_i = b_{i - 1} \oplus a_i, where \oplus is the bitwise exclusive-or (xor). After constructing an array bb, the constraint b1<b2<<bn1<bnb_1 < b_2 < \dots < b_{n - 1} < b_n should hold.

Since the number of possible arrays may be too large, you need to find the answer modulo mm.

Input Format: The first line contains an integer tt (1t1001 \leq t \leq 100) denoting the number of test cases in the input.

Each of the next tt lines contains two integers d,md, m (1d,m1091 \leq d, m \leq 10^9).

Note that mm is not necessary the prime!

Output Format: For each test case, print the number of arrays aa, satisfying all given constrains, modulo mm.

Sample Cases

Case 1

Input

10
1 1000000000
2 999999999
3 99999998
4 9999997
5 999996
6 99995
7 9994
8 993
9 92
10 1

Output

1
3
5
11
17
23
29
59
89
0

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback