#include<stdio.h>
long long factorial[10010];
long long quick(long long a,long long n,long long p);
long long com(long long k,long long n);
long long Lucas(long long k,long long n,long long p);
void fac(int p);
int main()
{
long long a,b,k,n,m;
fac(10007);
scanf("%lld%lld%lld%lld%lld",&a,&b,&k,&n,&m);
printf("%lld\n",quick(a,n,10007)*quick(b,m,10007)%10007*Lucas(k,n,10007)%10007);
return 0;
}
long long quick(long long a,long long n,long long p)//快速幂
{
long long ans=1;
while(n>0)
{
if(n%2!=0)
ans=ans*a%p;
n/=2;
a=a*a%p;
}
return ans;
}
void fac(int p)//阶乘求模
{
int i;
factorial[0]=1;
for(i=1;i<=p;i++)
factorial[i]=factorial[i-1]*i%p;
}
long long Lucas(long long k,long long n,long long p)
{
long long kk,nn;
long long ans=1;
while(k&n)
{
kk=k%p;
nn=n%p;
if(kk<nn)return 0;//待证明:对于组合数C(n,k),若k%p>n%p,一定有p整除C(n,k)
ans=ans*factorial[kk]*quick(factorial[kk-nn]*factorial[nn]%p,p-2,p);
//此处用到费马小定理求逆元
k/=p;
n/=p;
}
return ans;
}