#include <cstdio>
#include <cstring>
using namespace std;
int T, A, B, C, X, Y, Z, N;
void mult (int m1[3][3], int m2[3][3]) {
int i, j, k;
int m[3][3];
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
long long x = 0;
for (k = 0; k < 3; k++) {
x += (long long) m1[i][k] * m2[k][j];
m[i][j] = x % 666013;
}
}
}
memcpy(m1, m, sizeof(m));
}
int putere(int n)
{
int M[3][3] = {{0, 0, C}, {1, 0, B}, {0, 1, A}};
int P[3][3] = {{X, Y, Z}, {0, 0, 0}, {0, 0, 0}};
while(n > 0)
{
while(n % 2 == 0)
{
mult(M, M);
n /= 2;
}
mult(P, M);
n--;
}
return P[0][2];
}
int main() {
freopen ("iepuri.in", "r", stdin);
freopen ("iepuri.out", "w", stdout);
scanf ("%d", &T);
while (T--) {
scanf ("%d %d %d %d %d %d %d", &X, &Y, &Z, &A, &B, &C, &N);
printf ("%d\n", putere(N - 2));
}
return 0;
}