#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
long long mul(long long a, long long b, long long mod) //快速计算 (a*b) % mod
{
long long ans = 0; // 初始化
while (b) //根据b的每一位看加不加当前a
{
if (b & 1) //如果当前位为1
{
b--;
ans = (ans + a) % mod; //ans+=a
}
b /= 2; //b向前移位
a = (a + a) % mod; //更新a
}
return ans;
}
long long pow_pow(long long a, long long b, long long mod) {
long long ans = 0;
while (b) {
if (b & 1) {
ans = mul(ans, a, mod);
}
b = b / 2;
a = pow_pow(a, a, mod);
}
return ans;
}
int main()
{
int t;
scanf("%d", &t);
while (t--)
{
long long q, p;
scanf("%I64d %I64d", &q, &p);
long long a = q - 1;
long long b = q - 2;
long long ans;
ans = mul(a / 2, b, p);
printf("%I64d\n", ans);
}
return 0;
}
return ans;
}
long long pow_pow(long long a, long long b, long long mod) {
long long ans = 0;
while (b) {
if (b & 1) {
ans = mul(ans, a, mod);
}
b = b / 2;
a = pow_pow(a, a, mod);
}
return ans;
}
int main()
{
int t;
scanf("%d", &t);
while (t--)
{
long long q, p;
scanf("%I64d %I64d", &q, &p);
long long a = q - 1;
long long b = q - 2;
long long ans;
ans = mul(a / 2, b, p);
printf("%I64d\n", ans);
}
return 0;
}