#include <bits/stdc++.h>
using namespace std;
long long M;
long long Qpow(long long a, long long n) {
  long long re = 1;
  while (n) {
    if (n & 1) {
      re = (re * a);
    }
    n >>= 1;
    a = (a * a);
  }
  return re;
}
int main() {
  int T;
  scanf("%d", &T);
  while (T--) {
    long long d;
    scanf("%lld %lld", &d, &M);
    long long ans = 1;
    for (register int i = 0; i < 64; i++) {
      long long k = Qpow(2, i);
      if (k > d) {
        break;
      }
      ans *= (min(d, (2 * k) - 1) - k + 2);
      ans %= M;
    }
    ans--;
    ans = (ans + M) % M;
    printf("%lld\n", ans);
  }
  return 0;
}
