#include <bits/stdc++.h>
using namespace std;
const long long N = 1e6 + 100;
long long mod;
void add(long long &a, long long b) {
  a += b;
  if (a >= mod) a -= mod;
}
void dec(long long &a, long long b) {
  a -= b;
  if (a < 0) a += mod;
}
void up() {
  long long d, m;
  cin >> d >> m;
  mod = m;
  vector<long long> dp(120);
  long long cnt = 0;
  long long dd = d;
  while (dd) {
    dd /= 2;
    cnt++;
  }
  dp[0] = 1;
  for (long long i = 1; i < cnt; i++) {
    long long zz = 1 << (i - 1);
    for (long long j = 0; j < i; j++) {
      dp[i] += zz * dp[j] % m;
      dp[i] %= m;
    }
  }
  long long zz = d - ((1 << (cnt - 1)) - 1);
  for (long long j = 0; j < cnt; j++) {
    dp[cnt] = (dp[cnt] + zz * dp[j] % m) % m;
  }
  long long ans = 0;
  for (long long i = cnt; i > 0; i--) {
    add(ans, dp[i]);
  }
  cout << ans % m << endl;
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long _;
  cin >> _;
  while (_--) up();
  return 0;
}
