#include <bits/stdc++.h>
using namespace std;
const double pi = 3.1415926535897932384626433832795;
double eps = 1e-14;
char ch[1 << 20];
inline string gs() {
  scanf("%s", ch);
  return string(ch);
}
inline int gi() {
  int x;
  scanf("%d", &x);
  return x;
}
void error() {
  int ttt = 0;
  cout << 7 / ttt;
}
long long gcd(long long a, long long b) { return (!a) ? b : gcd(b % a, a); }
const long long mod = 1000 * 1000 * 1000 + 7;
inline long long MUL(long long a, long long b) { return a * b % mod; }
inline long long ADD(long long a, long long b) {
  return (a + b >= mod) ? a + b - mod : a + b;
}
inline long long SUB(long long a, long long b) {
  return (a - b < 0) ? a + mod - b : a - b;
}
long long inv(long long x) {
  long long r = 1;
  long long n = mod - 2;
  while (n) {
    if (n & 1LL) r = MUL(r, x);
    x = MUL(x, x);
    n >>= 1;
  }
  return r;
}
long long pw(long long x, long long n) {
  long long r = 1;
  while (n) {
    if (n & 1LL) r = MUL(r, x);
    x = MUL(x, x);
    n >>= 1;
  }
  return r;
}
long long F[1111111];
long long iF[1111111];
void preF(int n) {
  F[0] = 1;
  for (int i = (1), _b(n); i < _b; ++i) {
    F[i] = MUL(F[i - 1], (long long)i);
  }
  for (int i = (0), _b(n); i < _b; ++i) iF[i] = inv(F[i]);
}
long long C(int n, int m) {
  if (n == m) return 1;
  return MUL(F[n], MUL(iF[n - m], iF[m]));
}
long long P[1111];
int main() {
  int N, M, K;
  scanf("%d%d%d", &N, &M, &K);
  if (M == 1) {
    cout << pw(K, N * M) << endl;
    exit(0);
  }
  preF(K + 10);
  long long res = 0;
  for (int a = (1), _b(N + 1); a < _b; ++a) {
    long long r = pw(a, N);
    for (int kk = (1), _b(a); kk < _b; ++kk) r = SUB(r, MUL(C(a, kk), P[kk]));
    P[a] = r;
    for (int z = (0), _b(a + 1); z < _b; ++z) {
      long long other = pw(z, (M - 2) * N);
      if ((K - z) < a + a - z - z) continue;
      int b = a - z;
      long long c = C(K, z);
      c = MUL(c, C(K - z, b));
      c = MUL(c, C(K - a, b));
      long long d = MUL(r, r);
      res = ADD(res, MUL(other, MUL(c, d)));
    }
  }
  cout << res << endl;
  return 0;
}
