#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 100;
long long int a[N], dp[60][60];
int main() {
  ios::sync_with_stdio(0);
  long long int t;
  cin >> t;
  while (t--) {
    long long int m, d;
    cin >> d >> m;
    memset(dp, -1, sizeof(dp));
    ;
    long long int ans = 0, pw = 1, pas = 1, o = 0;
    for (int i = 0; pw <= d; i++) {
      pw *= 2;
      for (; pas < min(d + 1, pw);) {
        dp[0][i] = min(d + 1, pw) - pas;
        pas = min(d + 1, pw);
      }
      dp[0][i] %= m;
      o = i;
      ans += dp[0][i];
      ans %= m;
      dp[0][i] %= m;
    }
    for (int i = 1; i <= o; i++) {
      for (int j = 30; j >= 0; j--) {
        long long int mas = 0;
        for (int k = 0; k < j; k++) {
          if (dp[i - 1][k] != -1) {
            mas += dp[i - 1][k] * dp[0][j];
            mas %= m;
          }
        }
        dp[i][j] = mas;
        if (j > o) continue;
        ans += mas;
        ans %= m;
      }
    }
    cout << ans << '\n';
  }
}
