忘返回了
```cpp
#include<iostream>
#include<cstdio>
#include<cmath>
#define mod 10007
#define max_size 1005
using namespace std;
int a,b,k,n,m,c[max_size][max_size];
long long ans;
void produce_c()
{
for(int i=1;i<=k;i++)
c[i][0]=c[i][i]=1;
for(int i=1;i<max_size;i++)
for(int j=1;j<i;j++)
c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;
}
int qpow(int x,int y)
{
if(y==0) return 1;
int result=1;
while(y>0)
{
if(y&1) result=(result%mod)*(x%mod)%mod;
x=(x)*(x)%mod;
y=y>>1;
}
return result;
}
int main()
{
freopen("testdata.in","r",stdin);
scanf("%d%d%d%d%d",&b,&a,&k,&n,&m);
//cin>>b>>a>>k>>n>>m;
c[0][0]=1;
produce_c();
ans=((c[k][m]%mod)*(qpow(a,m)%mod)*(qpow(b,n)%mod))%mod;
printf("%d",ans);
return 0;
}
```
by richardchen @ 2017-08-20 12:13:08