/*
0 1 0
z= 0 0 1
c b a
z^(n-2) *(v0,v1,v2) = (v[n-2],v[n-1],v[n]); ->>ceva de genu :))
*/
#include<stdio.h>
#define m 666013
int main()
{
int x,y,t,a,b,c,n,i,j;
freopen("iepuri.in","r",stdin);
freopen("iepuri.out","w",stdout);
scanf("%d %d %d %d %d %d %d",&x,&y,&t,&a,&b,&c,&n);
n=n-2;
int sol[3][3]={{1,0,0},{0,1,0},{0,0,1}},z[3][3]={{0,1,0},{0,0,1},{c,b,a}},aux[3][3];
while(n!=0)
{
if( (n&1) == 1)
//sol=sol*z
{
//formeaza matricea
for(i=0;i<=2;i++) for(j=0;j<=2;j++)
aux[i][j]=(sol[i][0]*z[0][j])%m + (sol[i][1]*z[1][j])%m + (sol[i][2]*z[2][j])%m ;
//atribuire
for(i=0;i<=2;i++) for(j=0;j<=2;j++) sol[i][j]=aux[i][j]%m;
}
//z= z*z ;
for(i=0;i<=2;i++) for(j=0;j<=2;j++) aux[i][j]=(z[i][0]*z[0][j])%m + (z[i][1]*z[1][j])%m + (z[i][2]*z[2][j])%m ;
//atribuire
for(i=0;i<=2;i++) for(j=0;j<=2;j++) z[i][j]=aux[i][j]%m;
n=n>>1;
}
printf("%d",x*sol[2][0]+y*sol[2][1]+t*sol[2][2]);
return 0;
}