#include <cstdio>
#include <cstring>
using namespace std;
const int MOD = 666013;
int A[5][5], a, b, c, x, y, z, n, t, R[5][5], T[5][5];
void times(int A[5][5],int B[5][5],int C[5][5], int n, int m, int q) {
int i, j, k;
memset(C, 0, sizeof(C));
for(k = 1; k <= m; ++k)
for(i = 1; i <= n; ++i)
for(j = 1; j <= q; ++j){
C[i][j] += ((long long)A[i][k] * B[k][j]) % MOD;
if(C[i][j] > MOD)
C[i][j] -= MOD;
}
}
void exp(int w, int C[5][5], int n, int m) {
int pow[5][5], B[5][5];
int i, j;
memset(C, 0, sizeof(C));
memset(B, 0, sizeof(B));
for(i = 1; i <= n; ++i)
for(j = 1; j <= m; ++j)
pow[i][j] = A[i][j];
for(i = 1; i <= n; ++i)
C[i][i] = 1;
for(int step = 1; step <= w; step *= 2) {
if(step & w){
memset(B, 0, sizeof(B));
times(C, pow, B, n, m, m);
memcpy(C, B, sizeof(B));
}
memset(B, 0, sizeof(B));
times(pow, pow, B, n, m, m);
memcpy(pow, B, sizeof(B));
/*
for(i = 1; i <= n; ++i)
for(j = 1; j <= m; ++j)
pow[i][j] = B[i][j];
*/
}
}
int main() {
freopen("iepuri.in", "r", stdin);
freopen("iepuri.out", "w", stdout);
scanf("%d", &t);
int i, j;
for(;t; --t) {
scanf("%d %d %d %d %d %d %d", &x, &y, &z, &a, &b, &c, &n);
memset(A, 0, sizeof(A));
memset(R, 0, sizeof(R));
A[1][3] = c; A[2][1] = 1; A[2][3] = b; A[3][2] = 1; A[3][3] = a;
exp(n - 2, R, 3, 3);
memset(A, 0, sizeof(A));
A[1][1] = x; A[1][2] = y; A[1][3] = z;
/*
for(i = 1; i <= 3; ++i){
for(j = 1; j <= 3; ++j)
printf("%d ", R[i][j]);
printf("\n");
}
*/
memset(T, 0, sizeof(T));
times(A, R, T, 1, 3, 3);
printf("%d\n", T[1][3]);
}
return 0;
}