# nCk ( O(N) )
N_MAX = 10**6
MOD = 10**9 + 7
fac, finv, inv = [0]*N_MAX ,[0]*N_MAX, [0]*N_MAX
def com_init():
    fac[0], fac[1] = 1, 1
    finv[0], finv[1] = 1, 1
    inv[1] = 1
    for i in range(2, N_MAX):
        fac[i] = fac[i - 1] * i % MOD
        inv[i] = MOD - inv[MOD%i] * (MOD // i) % MOD
        finv[i] = finv[i - 1] * inv[i] % MOD

def com(n, k):
    if n < k: return 0
    if n < 0 or k < 0: return 0
    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD


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

ans = 0
for dist in range(1,m):
    comb = (m-dist)*n*n
    other_comb = com(n*m-2,k-2)
    ans += comb*other_comb*dist
    ans %= MOD

for dist in range(1,n):
    comb = (n-dist)*m*m
    other_comb = com(n*m-2,k-2)
    ans += comb*other_comb*dist
    ans %= MOD

print(ans) N_MAX = 10**6 N_MAX 10**6 10 6 MOD = 10**9 + 7 MOD 10**9 + 7 10**9 10 9 7 fac, finv, inv = [0]*N_MAX ,[0]*N_MAX, [0]*N_MAX fac [0]*N_MAX [0] 0 N_MAX finv [0]*N_MAX [0] 0 N_MAX inv [0]*N_MAX [0] 0 N_MAX def com_init():
    fac[0], fac[1] = 1, 1
    finv[0], finv[1] = 1, 1
    inv[1] = 1
    for i in range(2, N_MAX):
        fac[i] = fac[i - 1] * i % MOD
        inv[i] = MOD - inv[MOD%i] * (MOD // i) % MOD
        finv[i] = finv[i - 1] * inv[i] % MOD com_init fac[0], fac[1] = 1, 1 fac[0] fac 0 1 fac[1] fac 1 1 finv[0], finv[1] = 1, 1 finv[0] finv 0 1 finv[1] finv 1 1 inv[1] = 1 inv[1] inv 1 1 for i in range(2, N_MAX):
        fac[i] = fac[i - 1] * i % MOD
        inv[i] = MOD - inv[MOD%i] * (MOD // i) % MOD
        finv[i] = finv[i - 1] * inv[i] % MOD i range(2, N_MAX) range 2 N_MAX fac[i] = fac[i - 1] * i % MOD fac[i] fac i fac[i - 1] * i % MOD fac[i - 1] * i fac[i - 1] fac i - 1 i 1 i MOD inv[i] = MOD - inv[MOD%i] * (MOD // i) % MOD inv[i] inv i 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[i] = finv[i - 1] * inv[i] % MOD finv[i] finv i finv[i - 1] * inv[i] % MOD finv[i - 1] * inv[i] finv[i - 1] finv i - 1 i 1 inv[i] inv i MOD def com(n, k):
    if n < k: return 0
    if n < 0 or k < 0: return 0
    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD com if n < k: return 0
     n < k n k if n < 0 or k < 0: return 0
     n < 0 or k < 0 n < 0 n 0 k < 0 k 0 return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD fac[n] * (finv[k] * finv[n - k] % MOD) % MOD fac[n] * (finv[k] * finv[n - k] % MOD) fac[n] fac n finv[k] * finv[n - k] % MOD finv[k] * finv[n - k] finv[k] finv k finv[n - k] finv n - k n k MOD MOD n n k k n,m,k = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split m k com_init() com_init ans = 0 ans 0 for dist in range(1,m):
    comb = (m-dist)*n*n
    other_comb = com(n*m-2,k-2)
    ans += comb*other_comb*dist
    ans %= MOD dist range(1,m) range 1 m comb = (m-dist)*n*n comb (m-dist)*n*n (m-dist)*n m-dist m dist n n other_comb = com(n*m-2,k-2) other_comb com(n*m-2,k-2) com n*m-2 n*m n m 2 k-2 k 2 ans += comb*other_comb*dist ans comb*other_comb*dist comb*other_comb comb other_comb dist ans %= MOD ans MOD for dist in range(1,n):
    comb = (n-dist)*m*m
    other_comb = com(n*m-2,k-2)
    ans += comb*other_comb*dist
    ans %= MOD dist range(1,n) range 1 n comb = (n-dist)*m*m comb (n-dist)*m*m (n-dist)*m n-dist n dist m m other_comb = com(n*m-2,k-2) other_comb com(n*m-2,k-2) com n*m-2 n*m n m 2 k-2 k 2 ans += comb*other_comb*dist ans comb*other_comb*dist comb*other_comb comb other_comb dist ans %= MOD ans MOD print(ans) print ans comb = (m-dist)*n*n (m-dist)*n*n comb def com_init():
    fac[0], fac[1] = 1, 1
    finv[0], finv[1] = 1, 1
    inv[1] = 1
    for i in range(2, N_MAX):
        fac[i] = fac[i - 1] * i % MOD
        inv[i] = MOD - inv[MOD%i] * (MOD // i) % MOD
        finv[i] = finv[i - 1] * inv[i] % MOD def com_init():
    fac[0], fac[1] = 1, 1
    finv[0], finv[1] = 1, 1
    inv[1] = 1
    for i in range(2, N_MAX):
        fac[i] = fac[i - 1] * i % MOD
        inv[i] = MOD - inv[MOD%i] * (MOD // i) % MOD
        finv[i] = finv[i - 1] * inv[i] % MOD com_init ans %= MOD MOD ans fac, finv, inv = [0]*N_MAX ,[0]*N_MAX, [0]*N_MAX [0]*N_MAX fac ans = 0 0 ans ans += comb*other_comb*dist comb*other_comb*dist ans n,m,k = map(int, input().split()) map(int, input().split()) n finv, inv = [0]*N_MAX ,[0]*N_MAX, [0]*N_MAX [0]*N_MAX finv ans %= MOD MOD ans inv = [0]*N_MAX ,[0]*N_MAX, [0]*N_MAX [0]*N_MAX inv other_comb = com(n*m-2,k-2) com(n*m-2,k-2) other_comb ans += comb*other_comb*dist comb*other_comb*dist ans MOD = 10**9 + 7 10**9 + 7 MOD comb = (n-dist)*m*m (n-dist)*m*m comb k = map(int, input().split()) map(int, input().split()) k N_MAX = 10**6 10**6 N_MAX m,k = map(int, input().split()) map(int, input().split()) m def com(n, k):
    if n < k: return 0
    if n < 0 or k < 0: return 0
    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD def com(n, k):
    if n < k: return 0
    if n < 0 or k < 0: return 0
    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD com other_comb = com(n*m-2,k-2) com(n*m-2,k-2) other_comb
# nCk ( O(N) )
N_MAX = 10**6
MOD = 10**9 + 7
fac, finv, inv = [0]*N_MAX ,[0]*N_MAX, [0]*N_MAX
def com_init():
    fac[0], fac[1] = 1, 1
    finv[0], finv[1] = 1, 1
    inv[1] = 1
    for i in range(2, N_MAX):
        fac[i] = fac[i - 1] * i % MOD
        inv[i] = MOD - inv[MOD%i] * (MOD // i) % MOD
        finv[i] = finv[i - 1] * inv[i] % MOD

def com(n, k):
    if n < k: return 0
    if n < 0 or k < 0: return 0
    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD


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

ans = 0
for dist in range(1,m):
    comb = (m-dist)*n*n
    other_comb = com(n*m-2,k-2)
    ans += comb*other_comb*dist
    ans %= MOD

for dist in range(1,n):
    comb = (n-dist)*m*m
    other_comb = com(n*m-2,k-2)
    ans += comb*other_comb*dist
    ans %= MOD

print(ans)