#include <bits/stdc++.h>
using namespace std;
long long fact[1000001];
long long extgcd(long long a, long long b, long long& x, long long& y) {
  long long d = a;
  if (b)
    d = extgcd(b, a % b, y, x), y -= (a / b) * x;
  else
    x = 1, y = 0;
  return d;
}
long long mod_inverse(long long a, long long m) {
  long long x, y;
  extgcd(a, m, x, y);
  return ((long long)m + x % m) % m;
}
long long mod_fact(long long n, long long& e) {
  e = 0;
  if (!n) return 1;
  long long res = mod_fact(n / 1000000007LL, e);
  e += n / 1000000007LL;
  if (n / 1000000007LL % 2)
    return (long long)res * (1000000007LL - fact[n % 1000000007LL]) %
           1000000007LL;
  return (long long)res * fact[n % 1000000007LL] % 1000000007LL;
}
long long mod_C(long long n, long long k) {
  if (n < 0 || k < 0 || n < k) return 0;
  long long e1, e2, e3;
  long long a1 = mod_fact(n, e1), a2 = mod_fact(k, e2),
            a3 = mod_fact(n - k, e3);
  if (e1 > e2 + e3) return 0;
  return (long long)a1 * mod_inverse(a2 * a3 % 1000000007LL, 1000000007LL) %
         1000000007LL;
}
long long mod_pow(long long x, long long n) {
  long long res = 1;
  while (n) {
    if (n & 1) res = res * x % 1000000007LL;
    x = x * x % 1000000007LL;
    n /= 2;
  }
  return res;
}
long long n, m, k, c[1001], p[1001], ans;
int main() {
  fact[0] = 1;
  for (long long i = 0; i < 1000000; i++)
    fact[i + 1] = ((long long)fact[i] * (i + 1)) % 1000000007LL;
  cin >> n >> m >> k;
  if (m == 1) {
    cout << mod_pow(k, n);
    return 0;
  }
  for (long long i = 1; i < n + 1; i++) {
    p[i] = mod_pow(i, n);
    for (long long j = 1; j < i; j++)
      p[i] = (1000000007LL * 1000000007LL + p[i] - mod_C(i, j) * p[j]) %
             1000000007LL;
    c[i] = (p[i] * mod_C(k, i)) % 1000000007LL;
  }
  if (m == 2) {
    for (long long i = 1; i < n + 1; i++)
      ans = (ans + c[i] * c[i]) % 1000000007LL;
    cout << ans;
    return 0;
  }
  for (long long i = 1; i < n + 1; i++) {
    for (long long j = 1; j < i + 1; j++) {
      long long x = (mod_C(k, j) * mod_C(k - j, i - j)) % 1000000007LL;
      x = (x * mod_C(k - i, i - j)) % 1000000007LL;
      x = (x * p[i]) % 1000000007LL;
      x = (x * p[i]) % 1000000007LL;
      x = (x * mod_pow(j, n * (m - 2)));
      ans = (ans + x) % 1000000007LL;
    }
  }
  cout << ans;
}
