#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> ii;
typedef pair<ll, ll> l4;
#define pb push_back
#define mp make_pair

const int mod = 1e9+7;

const int maxn = 1e5+1;
int n, k, x;
ll dp[maxn][2];


int main()
{
  scanf("%d %d %d", &n, &k, &x);
  if (x==1)
    dp[1][1] = 1;
  else
    dp[1][0] = 1;
  for (int i = 2; i <= n; ++i)
    {
      dp[i][0] = (dp[i-1][0]*(k-2)+dp[i-1][1]*(k-1))%mod;
      dp[i][1] = dp[i-1][0];
    }
  printf("%lld\n", dp[n][1]);
}