#include <bits/stdc++.h>
#define pi acos(-1)
#define fastcin ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
const int INF = 0x3f3f3f3f;
const LL LL_INF = 0x3f3f3f3f3f3f3f3f;
const int maxn =100000 + 10;
const LL mod = (1<<30);
unsigned int RNG61(unsigned int &x, unsigned int &y, unsigned int &z)
{
x = x^(x<<11);
x = x^(x>>4);
x = x^(x<<5);
x = x^(x>>14);
unsigned int w = x^(y^z);
x = y;
y = z;
z = w;
return z;
}
LL maxx[maxn<<2];
LL lazy[maxn<<2];
LL a[maxn];
void PushUp(int rt)
{
maxx[rt] = max(maxx[rt<<1], maxx[rt<<1|1]);
}
void PushDown(int rt, int ln, int rn)
{
if(lazy[rt]){
lazy[rt<<1] = lazy[rt];
lazy[rt<<1|1] = lazy[rt];
maxx[rt<<1] = lazy[rt];
maxx[rt<<1|1] = lazy[rt];
if(ln == rn){
a[ln] = lazy[rt];
}
lazy[rt] = 0;
}
}
void update(int L, int R, int v, int l, int r, int rt)
{
if(L<=l && r<=R && max(maxx[rt],lazy[rt])<=v){
lazy[rt] = v;
maxx[rt] = v;
for(int i = l; i<=r ; i++){
a[i] = v;
}
return ;
}
if(l == r){
return ;
}
int mid = (l+r)>>1;
PushDown(rt, l, r);
if(L <= mid) update(L, R, v, l, mid, rt<<1);
if(R > mid) update(L, R, v, mid+1, r, rt<<1|1);
PushUp(rt);
}
int main()
{
int T; scanf("%d", &T);
while(T--){
int n, m, l, r, v;
memset(lazy,0,sizeof(lazy));
memset(maxx,0,sizeof(maxx));
memset(a,0,sizeof(a));
unsigned int X, Y, Z;
scanf("%d%d%u%u%u", &n, &m, &X, &Y, &Z);
unsigned int t1, t2, t3;
for(int i=0; i<m; i++){
t1 = RNG61(X, Y, Z);
t2 = RNG61(X, Y, Z);
t3 = RNG61(X, Y, Z);
l = min((t1%n)+1, (t2%n)+1);
r = max((t1%n)+1, (t2%n)+1);
v = t3 % mod;
update(l, r, v, 1, n, 1);
}
LL ans = 0;
for(int i=1; i<=n; i++){
ans ^= a[i]*i;
}
printf("%lld\n", ans);
}
}