#include<cstdio>usingnamespace std;
constint N = 1005;
constint mod = 10007;
#define int long longint c[N][N];
int a, b, k, n, m;
intpow(int x, int y){
int ans = 1, pas = x;
while (y) {
if (y & 1) ans = ans * pas % mod;
pas = pas * pas % mod;
y >>= 1;
}
return ans;
}
intdfs(int n, int m){
if (!m) return c[n][m] = 1;
if (m == 1) return c[n][m] = n;
if (c[n][m]) return c[n][m];
if (n - m < m) m = n - m;
return c[n][m] = (dfs(n - 1, m) + dfs(n - 1, m - 1)) % mod;
}
signedmain(){
scanf("%lld%lld%lld%lld%lld", &a, &b, &k, &n, &m);
c[1][0] = c[1][1] = 1;
a %= mod, b %= mod;
int ans = 1;
ans = (ans * pow(a, n)) % mod;
ans = (ans * pow(b, m)) % mod;
if (n > m) n = m;
ans = (ans * dfs(k, n)) % mod;
printf("%lld\n", ans);
}
#include<cmath>#include<cstdio>#include<cstring>int m, n, a[1000010], p[1000010], now[1000010], ans[1000010];
intmain(){
int i, j, k, x, y, z, tot = 0, cnt = 0;
bool flag;
scanf("%d%d", &n, &m);
x = sqrt(m + 0.5);
for (i = 2; i <= x; i++)
if (m % i == 0) {
a[++tot] = i;
while (m % i == 0) {
m /= i;
p[tot]++;
}
}
if (m > 1) {
a[++tot] = m;
p[tot] = 1;
}
for (i = 1; i < n - 1; i++) {
x = n - i;
y = i;
for (j = 1; j <= tot; j++)
while (x % a[j] == 0) {
x /= a[j];
now[j]++;
}
for (j = 1; j <= tot; j++)
while (y % a[j] == 0) {
y /= a[j];
now[j]--;
}
flag = 1;
for (j = 1; j <= tot; j++)
if (p[j] > now[j]) {
flag = 0;
break;
}
if (flag) ans[++cnt] = i + 1;
}
printf("%d\n", cnt);
for (i = 1; i <= cnt; i++) printf("%d%c", ans[i], i == cnt ? '\n' : ' ');
}