#include <cstdio>
#define MOD 666013
int n,a,b,c,x,y,z;
struct str
{
long long m[5][5];
};
str in,fin;
long long res[5];
void defineste()
{
in.m[1][1]=0;
in.m[2][1]=1;
in.m[3][1]=0;
in.m[1][2]=0;
in.m[2][2]=0;
in.m[3][2]=1;
in.m[1][3]=c;
in.m[2][3]=b;
in.m[3][3]=a;
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++) fin.m[i][j]=0;
fin.m[i][i]=1;
}
}
int lg(int nr)
{
int ct=0;
while(nr>1)
{
nr>>=1;
ct++;
}
return ct;
}
str inm(str a,str b)
{
str c;
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++) c.m[i][j]=0;
}
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
for(int k=1;k<=3;k++)
{
c.m[i][j]+=(a.m[i][k]*b.m[k][j]);
c.m[i][j]%=MOD;
}
}
}
return c;
}
void solve()
{
n-=2;
int s=lg(n);
for(int i=0;i<=s;i++)
{
if(n&(1<<i))
{
fin=inm(fin,in);
}
in=inm(in,in);
}
}
int main()
{
freopen ("iepuri.in","r",stdin);
freopen ("iepuri.out","w",stdout);
int t;
scanf("%d",&t);
for(int xyz=1;xyz<=t;xyz++)
{
scanf("%d%d%d",&x,&y,&z);
scanf("%d%d%d%d",&a,&b,&c,&n);
defineste();
solve();
res[3]+=x*fin.m[1][3];
res[3]%=MOD;
res[3]+=y*fin.m[2][3];
res[3]%=MOD;
res[3]+=z*fin.m[3][3];
res[3]%=MOD;
printf("%d\n",res[3]);
res[3]=0;
}
}