#include<bits/stdc++.h>
using namespace std;
int w[500005], mod, T, q;
bool InRange(int l, int r, int L, int R) {
return (l >= L) && (r <= R);
}
bool OutofRange(int l, int r, int L, int R) {
return (l > R) || (r < L);
}
void pushup(int u) {
w[u] = w[u * 2] * w[u * 2 + 1];
w[u] %= mod;
}
void update(int u, int l, int r, int L, int R, int x) {
if(InRange(l, r, L, R)) {
w[u] = x;
return ;
}
if(OutofRange(l, r, L,R)) {
return ;
}
int mid = l + r >> 1;
update(u * 2, l, mid, L, R, x);
update(u * 2 + 1, mid + 1, r, L, R, x);
pushup(u);
}
void build(int u, int l, int r) {
if(l == r) {
w[u] = 1;
return ;
}
int mid = l + r >> 1;
build(u * 2, l, mid);
build(u * 2 + 1, mid + 1, r);
pushup(u);
}
signed main() {
cin >> T;
while(T --) {
cin >> q >> mod;
build(1, 1, q);
for(int i = 1;i <= q;i ++) {
int op, m;
cin >> op >> m;
if(op == 1) {
update(1, 1, q, i, i, m);
w[1] %= mod;
cout << w[1] << endl;
}
else {
update(1, 1, q, m, m, 1);
w[1] %= mod;
cout << w[1] << endl;
}
}
}
}