#include <iostream>
#include <cstdio>
using namespace std;
const int MOD = 10007, N = 1e3 + 5;
int C[N][N];
int kmi(int a, int b)
{
int ret = 1;
while (b)
{
if (b & 1) ret = (ret * a) % MOD;
a = (a * a) % MOD;
b >>= 1;
}
return ret;
}
int main()
{
int a, b, k, n, m;
scanf("%d%d%d%d%d", &a, &b, &k, &n, &m);
for (int i = 0; i <= k; ++i)
{
C[i][0] = 1;
for (int j = 1; j <= i; ++j)
C[i][j] = (C[i-1][j] + C[i-1][j-1]) % MOD;
}
printf("%d", C[k][n]*kmi(a%MOD, n)%MOD*kmi(b%MOD, m)%MOD);
return 0;
}
#include <iostream>
#include <cstdio>
using namespace std;
const int MOD = 10007, N = 1e3 + 5;
int prime[N], cnt, st[N], freq[N];
void init(int k)
{
st[1] = 1;
for (int i = 2; i <= k; ++i)
{
if (!st[i]) prime[cnt++] = i;
for (int j = 0; i * prime[j] <= k; ++j)
{
st[i * prime[j]] = true;
if (i % prime[j] == 0) break;
}
}
}
int kmi(int a, int b)
{
int ret = 1;
while (b)
{
if (b & 1) ret = (ret * a) % MOD;
a = (a * a) % MOD;
b >>= 1;
}
return ret;
}
int get(int n, int p)
{
int ret = 0;
while (n)
{
ret += n / p;
n /= p;
}
return ret;
}
int main()
{
int a, b, k, n, m;
scanf("%d%d%d%d%d", &a, &b, &k, &n, &m);
init(k);
for (int i = 0; i < cnt; ++i)
{
int p = prime[i];
freq[p] = get(k, p) - get(m, p) - get(n, p);
// if (freq[p]) cout << p << " " << freq[p] << endl;
}
int ret = kmi(a%MOD, n) * kmi(b%MOD, m) % MOD;
for (int i = 0; i < cnt; ++i)
{
int p = prime[i];
ret = (ret * kmi(p, freq[p])) % MOD;
}
printf("%d", ret);
return 0;
}