import sys
input = lambda : sys.stdin.readline().rstrip()
mod = 10**9 + 7

def make_tables(n, mod = 10 ** 9 + 7):
    fac = [1, 1] # 階乗テーブル
    finv = [1, 1] #逆元の階乗テーブル
    inv = [0, 1] #逆元テーブル

    for i in range(2, n + 1):
        fac.append((fac[-1] * i) % mod)
        inv.append((mod -inv[mod % i] * (mod // i)) % mod)
        finv.append((finv[-1] * inv[-1]) % mod)
    return fac, finv

def nCk(n, k, mod = 10 ** 9 + 7):
    k = min(k, n-k)
    return fac[n] * finv[k] * finv[n-k] % mod

##########################

n, m, k = map(int, input().split())

fac, finv = make_tables(n*m - 2)

ans = 0

for i in range(1, m):
    ans += i*n*n*(m - i)*nCk(n*m - 2, k - 2)
    ans %= mod
for j in range(1, n):
    ans += j*m*m*(n - j)*nCk(n*m - 2, k - 2)
    ans %= mod

print(ans)




 import sys sys input = lambda : sys.stdin.readline().rstrip() input lambda : sys.stdin.readline().rstrip() sys.stdin.readline().rstrip() sys.stdin.readline().rstrip sys.stdin.readline() sys.stdin.readline sys.stdin sys stdin readline rstrip mod = 10**9 + 7 mod 10**9 + 7 10**9 10 9 7 def make_tables(n, mod = 10 ** 9 + 7):
    fac = [1, 1] # 階乗テーブル
    finv = [1, 1] #逆元の階乗テーブル
    inv = [0, 1] #逆元テーブル

    for i in range(2, n + 1):
        fac.append((fac[-1] * i) % mod)
        inv.append((mod -inv[mod % i] * (mod // i)) % mod)
        finv.append((finv[-1] * inv[-1]) % mod)
    return fac, finv make_tables fac = [1, 1] fac [1, 1] 1 1 finv = [1, 1] finv [1, 1] 1 1 inv = [0, 1] inv [0, 1] 0 1 for i in range(2, n + 1):
        fac.append((fac[-1] * i) % mod)
        inv.append((mod -inv[mod % i] * (mod // i)) % mod)
        finv.append((finv[-1] * inv[-1]) % mod)
     i range(2, n + 1) range 2 n + 1 n 1 fac.append((fac[-1] * i) % mod) fac.append fac append (fac[-1] * i) % mod fac[-1] * i fac[-1] fac -1 i mod inv.append((mod -inv[mod % i] * (mod // i)) % mod) inv.append inv append (mod -inv[mod % i] * (mod // i)) % mod mod -inv[mod % i] * (mod // i) mod inv[mod % i] * (mod // i) inv[mod % i] inv mod % i mod i mod // i mod i mod finv.append((finv[-1] * inv[-1]) % mod) finv.append finv append (finv[-1] * inv[-1]) % mod finv[-1] * inv[-1] finv[-1] finv -1 inv[-1] inv -1 mod return fac, finv return fac, finv fac finv n n mod = 10 ** 9 + 7 mod 10 ** 9 + 7 10 ** 9 10 9 7 def nCk(n, k, mod = 10 ** 9 + 7):
    k = min(k, n-k)
    return fac[n] * finv[k] * finv[n-k] % mod

########################## nCk k = min(k, n-k) k min(k, n-k) min k n-k n k return fac[n] * finv[k] * finv[n-k] % mod fac[n] * finv[k] * finv[n-k] % mod fac[n] * finv[k] * finv[n-k] fac[n] * finv[k] fac[n] fac n finv[k] finv k finv[n-k] finv n-k n k mod n n k k mod = 10 ** 9 + 7 mod 10 ** 9 + 7 10 ** 9 10 9 7 n, m, k = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split m k fac, finv = make_tables(n*m - 2) fac make_tables(n*m - 2) make_tables n*m - 2 n*m n m 2 finv ans = 0 ans 0 for i in range(1, m):
    ans += i*n*n*(m - i)*nCk(n*m - 2, k - 2)
    ans %= mod i range(1, m) range 1 m ans += i*n*n*(m - i)*nCk(n*m - 2, k - 2) ans i*n*n*(m - i)*nCk(n*m - 2, k - 2) i*n*n*(m - i) i*n*n i*n i n n m - i m i nCk(n*m - 2, k - 2) nCk n*m - 2 n*m n m 2 k - 2 k 2 ans %= mod ans mod for j in range(1, n):
    ans += j*m*m*(n - j)*nCk(n*m - 2, k - 2)
    ans %= mod j range(1, n) range 1 n ans += j*m*m*(n - j)*nCk(n*m - 2, k - 2) ans j*m*m*(n - j)*nCk(n*m - 2, k - 2) j*m*m*(n - j) j*m*m j*m j m m n - j n j nCk(n*m - 2, k - 2) nCk n*m - 2 n*m n m 2 k - 2 k 2 ans %= mod ans mod print(ans) print ans input = lambda : sys.stdin.readline().rstrip() lambda : sys.stdin.readline().rstrip() input ans = 0 0 ans mod = 10**9 + 7 10**9 + 7 mod fac, finv = make_tables(n*m - 2) make_tables(n*m - 2) fac def nCk(n, k, mod = 10 ** 9 + 7):
    k = min(k, n-k)
    return fac[n] * finv[k] * finv[n-k] % mod

########################## def nCk(n, k, mod = 10 ** 9 + 7):
    k = min(k, n-k)
    return fac[n] * finv[k] * finv[n-k] % mod

########################## nCk ans += i*n*n*(m - i)*nCk(n*m - 2, k - 2) i*n*n*(m - i)*nCk(n*m - 2, k - 2) ans def make_tables(n, mod = 10 ** 9 + 7):
    fac = [1, 1] # 階乗テーブル
    finv = [1, 1] #逆元の階乗テーブル
    inv = [0, 1] #逆元テーブル

    for i in range(2, n + 1):
        fac.append((fac[-1] * i) % mod)
        inv.append((mod -inv[mod % i] * (mod // i)) % mod)
        finv.append((finv[-1] * inv[-1]) % mod)
    return fac, finv def make_tables(n, mod = 10 ** 9 + 7):
    fac = [1, 1] # 階乗テーブル
    finv = [1, 1] #逆元の階乗テーブル
    inv = [0, 1] #逆元テーブル

    for i in range(2, n + 1):
        fac.append((fac[-1] * i) % mod)
        inv.append((mod -inv[mod % i] * (mod // i)) % mod)
        finv.append((finv[-1] * inv[-1]) % mod)
    return fac, finv make_tables k = map(int, input().split()) map(int, input().split()) k ans += j*m*m*(n - j)*nCk(n*m - 2, k - 2) j*m*m*(n - j)*nCk(n*m - 2, k - 2) ans ans %= mod mod ans n, m, k = map(int, input().split()) map(int, input().split()) n finv = make_tables(n*m - 2) make_tables(n*m - 2) finv m, k = map(int, input().split()) map(int, input().split()) m ans %= mod mod ans
import sys
input = lambda : sys.stdin.readline().rstrip()
mod = 10**9 + 7

def make_tables(n, mod = 10 ** 9 + 7):
    fac = [1, 1] # 階乗テーブル
    finv = [1, 1] #逆元の階乗テーブル
    inv = [0, 1] #逆元テーブル

    for i in range(2, n + 1):
        fac.append((fac[-1] * i) % mod)
        inv.append((mod -inv[mod % i] * (mod // i)) % mod)
        finv.append((finv[-1] * inv[-1]) % mod)
    return fac, finv

def nCk(n, k, mod = 10 ** 9 + 7):
    k = min(k, n-k)
    return fac[n] * finv[k] * finv[n-k] % mod

##########################

n, m, k = map(int, input().split())

fac, finv = make_tables(n*m - 2)

ans = 0

for i in range(1, m):
    ans += i*n*n*(m - i)*nCk(n*m - 2, k - 2)
    ans %= mod
for j in range(1, n):
    ans += j*m*m*(n - j)*nCk(n*m - 2, k - 2)
    ans %= mod

print(ans)





