#include #define N 100010 #define ll long long using namespace std; ll f[N]; const ll mod = 1e9 + 7; int n, k, x; void init() { f[2] = 1, f[3] = (k - 2) % mod; for(int i = 4; i <= n; i ++) f[i] =(1ll * (k - 1) * f[i - 2] % mod + 1ll * (k - 2) * f[i - 1] % mod) % mod; } long long countArray(int n, int k, int x) { // Return the number of ways to fill in the array. if(x == 1) return 1ll * (k - 1) * f[n - 1] % mod; return f[n]; } int main() { // freopen("in.txt", "r", stdin); cin >> n >> k >> x; init(); long long answer = countArray(n, k, x); cout << answer % mod << endl; return 0; }