#!/bin/python3 #from math import pow import sys mod = 10**9+7 n,k,x = [int(x) for x in input().split()] arr = [0,0] if x==1: arr.append(0) else: arr.append(1) for m in range(3,10**5+1): arr.append((pow(k-1,m-1-1,mod)- arr[m-1])%mod) print(arr[n]) sys.exit() def countArray(n, k, x): if n==2: return 1 return (pow(k-1,n-1-1,mod)- countArray(n-1,k,x))%mod # Return the number of ways to fill in the array. if __name__ == "__main__": n, k, x = input().strip().split(' ') n, k, x = [int(n), int(k), int(x)] answer = countArray(n, k, x) print(answer)