#include using namespace std; long long int smallfac(long long int x) { if(x==1) return 1; else return x*smallfac(x-1); } long countArray(int n, int k, int x) { long long arr[100005],arr1[100005]; long long i; long long ans; arr1[0]=1; arr[0]=1; arr[1]=1; arr1[1]=1; arr[2]=2; arr1[2]=1; for(i=3;i<100005;i++) { arr[i]=((arr[i]*i)%1000000007); arr1[i]=((arr1[i]*i)%1000000007); } ans=1; for(i=1;i<=n-2;i++) { if(i!=n-2) { ans=((ans*arr[k-1])%1000000007); } else { /*if(k>=4) ans=((ans*((arr1[k-1]+arr1[k-2])%1000000007))%1000000007); else ans=(((ans*(smallfac(k-1)+smallfac(k-2)))/2)%1000000007); */ ans=((ans*arr[k-2])%1000000007); } } return ans; } int main() { int n; int k; int x; cin >> n >> k >> x; long answer = countArray(n, k, x); cout << answer << endl; return 0; }