#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=405,mod=1e9+7;
int n,m,c;
int cc[N][N];
int ans;
int quickpow(int a,int b){
int sum=1;
while(b){
if(b&1)
sum=sum*a%mod;
a=a*a%mod;
b>>=1;
}
return sum%mod;
}
int f(int x){
int sum=0;
for(int k=0;k<=m;k++){
if(k%2==0){
sum=(sum-cc[m][k]*quickpow(quickpow(x+1,k)-1,n)%mod+mod)%mod;
}else{
sum=(sum+cc[m][k]*quickpow(quickpow(x+1,k)-1,n)%mod)%mod;
}
}
return sum%mod;
}
signed main(){
cin>>n>>m>>c;
for(int i=0;i<=400;i++) cc[i][0]=1;
for(int i=0;i<=400;i++){
for(int j=1;j<=i;j++){
cc[i][j]=(cc[i-1][j]+cc[i-1][j-1])%mod;
}
}
for(int i=0;i<=c;i++){
if(i%2!=0){
ans=(ans-cc[c][i]*f(i)%mod+mod)%mod;
}else{
ans=(ans+cc[c][i]*f(i)%mod)%mod;
}
}
cout<<(ans+mod)%mod;
return 0;
}