import numpy as np
import sys
sys.setrecursionlimit(10 ** 7)

# 数え上げ

N, M, K = map(int, input().split())
ans = 0

MOD = 10 ** 9 + 7


def cumprod(arr, MOD):
    L = len(arr)
    Lsq = int(L**.5+1)
    arr = np.resize(arr, Lsq**2).reshape(Lsq, Lsq)
    for n in range(1, Lsq):
        arr[:, n] *= arr[:, n-1]
        arr[:, n] %= MOD
    for n in range(1, Lsq):
        arr[n] *= arr[n-1, -1]
        arr[n] %= MOD
    return arr.ravel()[:L]


def make_fact(U, MOD):
    x = np.arange(U, dtype=np.int64)
    x[0] = 1
    fact = cumprod(x, MOD)
    x = np.arange(U, 0, -1, dtype=np.int64)
    x[0] = pow(int(fact[-1]), MOD-2, MOD)
    fact_inv = cumprod(x, MOD)[::-1]
    return fact, fact_inv


U = N * M + 10
fact, fact_inv = make_fact(U, MOD)
fact, fact_inv = fact.tolist(), fact_inv.tolist()


def mod_comb_k(n, k, mod):
    return fact[n] * fact_inv[k] % mod * fact_inv[n - k] % mod


# X
for dx in range(1, N):
    pat = N - dx
    ans += dx * pat * M * M
    ans %= MOD

# Y
for dy in range(1, M):
    pat = M - dy
    ans += dy * pat * N * N
    ans %= MOD

ans *= mod_comb_k(N * M - 2, K-2, MOD)
ans %= MOD

print(ans) import numpy as np numpy import sys sys sys.setrecursionlimit(10 ** 7) sys.setrecursionlimit sys setrecursionlimit 10 ** 7 10 7 N, M, K = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split M K ans = 0 ans 0 MOD = 10 ** 9 + 7 MOD 10 ** 9 + 7 10 ** 9 10 9 7 def cumprod(arr, MOD):
    L = len(arr)
    Lsq = int(L**.5+1)
    arr = np.resize(arr, Lsq**2).reshape(Lsq, Lsq)
    for n in range(1, Lsq):
        arr[:, n] *= arr[:, n-1]
        arr[:, n] %= MOD
    for n in range(1, Lsq):
        arr[n] *= arr[n-1, -1]
        arr[n] %= MOD
    return arr.ravel()[:L] cumprod L = len(arr) L len(arr) len arr Lsq = int(L**.5+1) Lsq int(L**.5+1) int L**.5+1 L**.5 L .5 1 arr = np.resize(arr, Lsq**2).reshape(Lsq, Lsq) arr np.resize(arr, Lsq**2).reshape(Lsq, Lsq) np.resize(arr, Lsq**2).reshape np.resize(arr, Lsq**2) np.resize np resize arr Lsq**2 Lsq 2 reshape Lsq Lsq for n in range(1, Lsq):
        arr[:, n] *= arr[:, n-1]
        arr[:, n] %= MOD
     n range(1, Lsq) range 1 Lsq arr[:, n] *= arr[:, n-1] arr[:, n] arr : arr[:, n-1] arr : arr[:, n] %= MOD arr[:, n] arr : MOD for n in range(1, Lsq):
        arr[n] *= arr[n-1, -1]
        arr[n] %= MOD
     n range(1, Lsq) range 1 Lsq arr[n] *= arr[n-1, -1] arr[n] arr n arr[n-1, -1] arr n-1 n 1 arr[n] %= MOD arr[n] arr n MOD return arr.ravel()[:L] arr.ravel()[:L] arr.ravel() arr.ravel arr ravel :L L arr arr MOD MOD def make_fact(U, MOD):
    x = np.arange(U, dtype=np.int64)
    x[0] = 1
    fact = cumprod(x, MOD)
    x = np.arange(U, 0, -1, dtype=np.int64)
    x[0] = pow(int(fact[-1]), MOD-2, MOD)
    fact_inv = cumprod(x, MOD)[::-1]
    return fact, fact_inv make_fact x = np.arange(U, dtype=np.int64) x np.arange(U, dtype=np.int64) np.arange np arange U dtype=np.int64 dtype np.int64 np int64 x[0] = 1 x[0] x 0 1 fact = cumprod(x, MOD) fact cumprod(x, MOD) cumprod x MOD x = np.arange(U, 0, -1, dtype=np.int64) x np.arange(U, 0, -1, dtype=np.int64) np.arange np arange U 0 -1 dtype=np.int64 dtype np.int64 np int64 x[0] = pow(int(fact[-1]), MOD-2, MOD) x[0] x 0 pow(int(fact[-1]), MOD-2, MOD) pow int(fact[-1]) int fact[-1] fact -1 MOD-2 MOD 2 MOD fact_inv = cumprod(x, MOD)[::-1] fact_inv cumprod(x, MOD)[::-1] (x, MOD) cumprod x MOD ::-1 -1 return fact, fact_inv return fact, fact_inv fact fact_inv U U MOD MOD U = N * M + 10 U N * M + 10 N * M N M 10 fact, fact_inv = make_fact(U, MOD) fact make_fact(U, MOD) make_fact U MOD fact_inv fact, fact_inv = fact.tolist(), fact_inv.tolist() fact fact.tolist() fact.tolist fact tolist fact_inv fact_inv.tolist() fact_inv.tolist fact_inv tolist def mod_comb_k(n, k, mod):
    return fact[n] * fact_inv[k] % mod * fact_inv[n - k] % mod


# X mod_comb_k return fact[n] * fact_inv[k] % mod * fact_inv[n - k] % mod fact[n] * fact_inv[k] % mod * fact_inv[n - k] % mod fact[n] * fact_inv[k] % mod * fact_inv[n - k] fact[n] * fact_inv[k] % mod fact[n] * fact_inv[k] fact[n] fact n fact_inv[k] fact_inv k mod fact_inv[n - k] fact_inv n - k n k mod n n k k mod mod for dx in range(1, N):
    pat = N - dx
    ans += dx * pat * M * M
    ans %= MOD

# Y dx range(1, N) range 1 N pat = N - dx pat N - dx N dx ans += dx * pat * M * M ans dx * pat * M * M dx * pat * M dx * pat dx pat M M ans %= MOD ans MOD for dy in range(1, M):
    pat = M - dy
    ans += dy * pat * N * N
    ans %= MOD dy range(1, M) range 1 M pat = M - dy pat M - dy M dy ans += dy * pat * N * N ans dy * pat * N * N dy * pat * N dy * pat dy pat N N ans %= MOD ans MOD ans *= mod_comb_k(N * M - 2, K-2, MOD) ans mod_comb_k(N * M - 2, K-2, MOD) mod_comb_k N * M - 2 N * M N M 2 K-2 K 2 MOD ans %= MOD ans MOD print(ans) print ans ans %= MOD MOD ans def mod_comb_k(n, k, mod):
    return fact[n] * fact_inv[k] % mod * fact_inv[n - k] % mod


# X def mod_comb_k(n, k, mod):
    return fact[n] * fact_inv[k] % mod * fact_inv[n - k] % mod


# X mod_comb_k U = N * M + 10 N * M + 10 U pat = N - dx N - dx pat fact, fact_inv = make_fact(U, MOD) make_fact(U, MOD) fact pat = M - dy M - dy pat ans *= mod_comb_k(N * M - 2, K-2, MOD) mod_comb_k(N * M - 2, K-2, MOD) ans MOD = 10 ** 9 + 7 10 ** 9 + 7 MOD N, M, K = map(int, input().split()) map(int, input().split()) N ans %= MOD MOD ans ans += dx * pat * M * M dx * pat * M * M ans ans %= MOD MOD ans K = map(int, input().split()) map(int, input().split()) K fact, fact_inv = fact.tolist(), fact_inv.tolist() fact.tolist() fact def make_fact(U, MOD):
    x = np.arange(U, dtype=np.int64)
    x[0] = 1
    fact = cumprod(x, MOD)
    x = np.arange(U, 0, -1, dtype=np.int64)
    x[0] = pow(int(fact[-1]), MOD-2, MOD)
    fact_inv = cumprod(x, MOD)[::-1]
    return fact, fact_inv def make_fact(U, MOD):
    x = np.arange(U, dtype=np.int64)
    x[0] = 1
    fact = cumprod(x, MOD)
    x = np.arange(U, 0, -1, dtype=np.int64)
    x[0] = pow(int(fact[-1]), MOD-2, MOD)
    fact_inv = cumprod(x, MOD)[::-1]
    return fact, fact_inv make_fact fact_inv = fact.tolist(), fact_inv.tolist() fact_inv.tolist() fact_inv ans = 0 0 ans def cumprod(arr, MOD):
    L = len(arr)
    Lsq = int(L**.5+1)
    arr = np.resize(arr, Lsq**2).reshape(Lsq, Lsq)
    for n in range(1, Lsq):
        arr[:, n] *= arr[:, n-1]
        arr[:, n] %= MOD
    for n in range(1, Lsq):
        arr[n] *= arr[n-1, -1]
        arr[n] %= MOD
    return arr.ravel()[:L] def cumprod(arr, MOD):
    L = len(arr)
    Lsq = int(L**.5+1)
    arr = np.resize(arr, Lsq**2).reshape(Lsq, Lsq)
    for n in range(1, Lsq):
        arr[:, n] *= arr[:, n-1]
        arr[:, n] %= MOD
    for n in range(1, Lsq):
        arr[n] *= arr[n-1, -1]
        arr[n] %= MOD
    return arr.ravel()[:L] cumprod fact_inv = make_fact(U, MOD) make_fact(U, MOD) fact_inv M, K = map(int, input().split()) map(int, input().split()) M ans += dy * pat * N * N dy * pat * N * N ans
import numpy as np
import sys
sys.setrecursionlimit(10 ** 7)

# 数え上げ

N, M, K = map(int, input().split())
ans = 0

MOD = 10 ** 9 + 7


def cumprod(arr, MOD):
    L = len(arr)
    Lsq = int(L**.5+1)
    arr = np.resize(arr, Lsq**2).reshape(Lsq, Lsq)
    for n in range(1, Lsq):
        arr[:, n] *= arr[:, n-1]
        arr[:, n] %= MOD
    for n in range(1, Lsq):
        arr[n] *= arr[n-1, -1]
        arr[n] %= MOD
    return arr.ravel()[:L]


def make_fact(U, MOD):
    x = np.arange(U, dtype=np.int64)
    x[0] = 1
    fact = cumprod(x, MOD)
    x = np.arange(U, 0, -1, dtype=np.int64)
    x[0] = pow(int(fact[-1]), MOD-2, MOD)
    fact_inv = cumprod(x, MOD)[::-1]
    return fact, fact_inv


U = N * M + 10
fact, fact_inv = make_fact(U, MOD)
fact, fact_inv = fact.tolist(), fact_inv.tolist()


def mod_comb_k(n, k, mod):
    return fact[n] * fact_inv[k] % mod * fact_inv[n - k] % mod


# X
for dx in range(1, N):
    pat = N - dx
    ans += dx * pat * M * M
    ans %= MOD

# Y
for dy in range(1, M):
    pat = M - dy
    ans += dy * pat * N * N
    ans %= MOD

ans *= mod_comb_k(N * M - 2, K-2, MOD)
ans %= MOD

print(ans)
