#include <stdio.h>
struct mat3
{
long long m[3][3];
mat3()
{
for(int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++) m[i][j] = 0;
}
mat3(long long a, long long b, long long c, long long d, long long e, long long f, long long g, long long h, long long i)
{
m[0][0] = a;
m[0][1] = b;
m[0][2] = c;
m[1][0] = d;
m[1][1] = e;
m[1][2] = f;
m[2][0] = g;
m[2][1] = h;
m[2][2] = i;
}
};
mat3 ModMultiply(mat3 a, mat3 b, long long mod)
{
mat3 c;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
long long sum = 0;
for (int k = 0; k < 3; k++)
sum = sum + a.m[i][k] * b.m[k][j];
c.m[i][j] = sum % mod;
}
}
return c;
}
const int MOD = 666013;
mat3 pow(mat3 b, int n)
{
if(n == 1)
return b;
mat3 a = pow(b, n / 2);
mat3 c = ModMultiply(a, a, MOD);
if(n % 2 == 1)
c = ModMultiply(c, b, MOD);
return c;
}
int main()
{
FILE *fin = fopen("iepuri.in", "r"),
*fout = fopen("iepuri.out", "w");
int t;
int x, y, z;
int a, b, c;
int n;
for(fscanf(fin, "%d", &t); t > 0; t--)
{
fscanf(fin, "%d %d %d %d %d %d %d", &x, &y, &z, &a, &b, &c, &n);
mat3 days(x, y, z, 0, 0, 0, 0, 0, 0);
mat3 multiplier(0, 0, c,
1, 0, b,
0, 1, a);
multiplier = pow(multiplier, n);
days = ModMultiply(days, multiplier, MOD);
fprintf(fout, "%lld\n", days.m[0][0]);
}
fclose(fin);
fclose(fout);
return 0;
}