type mat=array[1..3,1..3] of int64;
var m,m2:mat;
f,g:text;
t,q,a,b,c,x,y,z,n:longint;
procedure inm(var a:mat; b:mat);
var i,j,k:longint;
c:mat;
begin
for i:=1 to 3 do
for j:=1 to 3 do begin
c[i,j]:=0;
for k:=1 to 3 do
c[i,j]:=(c[i,j]+a[i,k]*b[k,j]) mod 666013;
end;
a:=c;
end;
procedure lg(n:longint);
begin
if n<>1 then begin
lg(n shr 1);
inm(m,m);
if n and 1=1 then
inm(m,m2);
end;
end;
procedure solve;
begin
read(f,x,y,z,a,b,c,n);
m[1,1]:=0; m[1,2]:=1; m[1,3]:=0;
m[2,1]:=0; m[2,2]:=0; m[2,3]:=1;
m[3,1]:=c; m[3,2]:=b; m[3,3]:=a;
m2:=m;
lg(n);
m2[1,1]:=x; m2[1,2]:=0; m2[1,3]:=0;
m2[2,1]:=y; m2[2,2]:=0; m2[2,3]:=0;
m2[3,1]:=z; m2[3,2]:=0; m2[3,3]:=0;
inm(m,m2);
writeln(g,m[1,1]);
end;
begin
assign(f,'iepuri.in'); reset(f);
assign(g,'iepuri.out'); rewrite(g);
read(f,t);
for q:=1 to t do
solve;
close(f); close(g);
end.