#include <fstream>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
long long t, x, y, z, a, b, c, n;
const long long MOD=666013;
void atribuire(long long a[3][3], long long b[3][3])
{
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
a[i][j]=b[i][j];
}
}
}
void inmultire(long long a[3][3], long long b[3][3], long long c[3][3])
{
long long temp[3][3]={0};
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
for(int k=0; k<3; k++)
{
temp[i][j]=(temp[i][j]+a[i][k]*b[k][j])%MOD;
}
}
}
atribuire(c, temp);
}
void putere(long long a[3][3], long long p, long long rez[3][3])
{
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
rez[i][j]=0;
rez[i][i]=1;
}
long long base[3][3];
atribuire(base, a);
while(p>0)
{
if(p&1)
{
long long temp[3][3];
inmultire(rez, base, temp);
atribuire(rez, temp);
}
long long temp[3][3];
inmultire(base, base, temp);
atribuire(base, temp);
p/=2;
}
}
int main()
{
fin >> t;
for(int i=1; i<=t; i++)
{
fin >> x >> y >> z >> a >> b >> c >> n;
long long m[3][3]={
{a, b, c},
{1, 0, 0},
{0, 1, 0}
};
long long rez[3][3];
putere(m, n-2, rez);
fout << (rez[0][0]*z+rez[0][1]*y+rez[0][2]*x)%MOD << "\n";
}
return 0;
}