#include #define int long long using namespace std; const int mod = 1e9 + 7, N = 1e5 + 5; /// dp[i][0 .. 1] - zakonchili na 1 ili ne na 1 int n, k, x, a[N], dp[N][2]; signed main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n >> k >> x; a[1] = 1; for(int i = 2; i <= n; i++){ a[i] = a[i - 1] * (k - 2) + a[i - 2] * (k - 1); a[i] %= mod; dp[i][0] = a[i]; dp[i][1] = a[i]; if(i & 1){ dp[i][1]--; } else{ dp[i][1]++; } dp[i][1] += mod; dp[i][1] %= mod; //cout << i << " " << dp[i][1] << " " << dp[i][0] << "\n"; } cout << (x == 1 ? dp[n - 1][1] : dp[n - 1][0]); }