#include <iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int a0,a1,p,q,k;
struct rec
{
int a[2][2];
};
rec f(rec aa,rec bb)
{
rec ret;
ret.a[0][0]=(aa.a[0][0]*bb.a[0][0]+aa.a[0][1]*bb.a[1][0])%10000;
ret.a[0][1]=(aa.a[0][0]*bb.a[0][1]+aa.a[0][1]*bb.a[1][1])%10000;
ret.a[1][0]=(aa.a[1][0]*bb.a[0][0]+aa.a[1][1]*bb.a[1][0])%10000;
ret.a[1][1]=(aa.a[1][0]*bb.a[0][1]+aa.a[1][1]*bb.a[1][1])%10000;
return ret;
}
rec mul(rec aa,int kk)
{
rec ret;
ret.a[0][0]=1;ret.a[0][1]=0;ret.a[1][0]=0;ret.a[1][1]=1;
for(;kk;kk>>=1)
{
if(kk&1)ret=f(ret,aa);
aa=f(aa,aa);
}
return ret;
}
int main()
{
while(~scanf("%d%d%d%d%d",&a0,&a1,&p,&q,&k))
{
if(k==0){printf("%d\n",a0);continue;}
else if(k==1){printf("%d\n",a1);continue;}
rec x;
x.a[0][0]=p;x.a[0][1]=1;x.a[1][0]=q;x.a[1][1]=0;
rec ans=mul(x,k-1);
printf("%d\n",(a1*ans.a[0][0]+a0*ans.a[1][0])%10000);
}
return 0;
}
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int a0,a1,p,q,k;
struct rec
{
int a[2][2];
};
rec f(rec aa,rec bb)
{
rec ret;
ret.a[0][0]=(aa.a[0][0]*bb.a[0][0]+aa.a[0][1]*bb.a[1][0])%10000;
ret.a[0][1]=(aa.a[0][0]*bb.a[0][1]+aa.a[0][1]*bb.a[1][1])%10000;
ret.a[1][0]=(aa.a[1][0]*bb.a[0][0]+aa.a[1][1]*bb.a[1][0])%10000;
ret.a[1][1]=(aa.a[1][0]*bb.a[0][1]+aa.a[1][1]*bb.a[1][1])%10000;
return ret;
}
rec mul(rec aa,int kk)
{
rec ret;
ret.a[0][0]=1;ret.a[0][1]=0;ret.a[1][0]=0;ret.a[1][1]=1;
for(;kk;kk>>=1)
{
if(kk&1)ret=f(ret,aa);
aa=f(aa,aa);
}
return ret;
}
int main()
{
while(~scanf("%d%d%d%d%d",&a0,&a1,&p,&q,&k))
{
if(k==0){printf("%d\n",a0);continue;}
else if(k==1){printf("%d\n",a1);continue;}
rec x;
x.a[0][0]=p;x.a[0][1]=1;x.a[1][0]=q;x.a[1][1]=0;
rec ans=mul(x,k-1);
printf("%d\n",(a1*ans.a[0][0]+a0*ans.a[1][0])%10000);
}
return 0;
}