//infoarena iepuri
type mat = array[1..3,1..3] of longint;
var m:mat;
x,y,z,a,b,c,n:longint;
function inmultire(a,b:mat):mat;
var i,j,k:integer;
rez:mat;
x,y,aux:int64;
begin
fillchar(rez,sizeof(rez),0);
for i:=1 to 3 do
for j:=1 to 3 do
begin
aux:=0;
for k:=1 to 3 do
begin
x:=a[i,k]; y:=b[k,j];
aux:=aux+x*y;
end;
rez[i,j]:=aux mod 666013;
end;
inmultire:=rez;
end;
function mlan(n:longint):mat;
var n1:mat;
i:longint;
begin
{n1:=m;
for i:=2 to n do
begin
inmultire(aux,n1,m);
n1:=aux;
end;}
if n = 1 then begin mlan:=m; exit; end;
if n mod 2 = 0 then
begin
n1:=mlan(n div 2);
mlan:=inmultire(n1,n1);
end
else
begin
n1:=mlan(n-1);
mlan:=inmultire(n1,m);
end;
end;
procedure calc;
var mn:mat;
rez:longint;
begin
mn:=mlan(n);
rez:=((mn[1,1]*x) mod 666013 +(mn[1,2]*y) mod 666013 +(mn[1,3]*z) mod 666013) mod 666013;
writeln(rez);
end;
procedure citire;
var i,t:longint;
begin
assign(input,'iepuri.in'); reset(input);
assign(output,'iepuri.out'); rewrite(output);
readln(t);
for i:=1 to t do
begin
readln(x,y,z,a,b,c,n);
fillchar(m,sizeof(m),0);
m[1,2]:=1; m[2,3]:=1; m[3,1]:=c; m[3,2]:=b; m[3,3]:=a;
calc;
end;
close(input); close(output);
end;
begin
citire;
end.