#include using namespace std; typedef long long ll; typedef pair ii; typedef pair 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]); }