import sys
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines

import numpy as np

# 2点間の距離の平均を求めればよい

MOD = 10**9 + 7

N,M,K = map(int,read().split())

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 = 10**6
fact, fact_inv = make_fact(U,MOD)

coef = fact[N*M-2] * fact_inv[K-2] % MOD * fact_inv[N*M-K] % MOD

x = (N-1)*N*(N+1)*M*M//6
y = (M-1)*M*(M+1)*N*N//6
answer = coef * ((x+y) % MOD) % MOD
print(answer) import sys sys read = sys.stdin.buffer.read read sys.stdin.buffer.read sys.stdin.buffer sys.stdin sys stdin buffer read readline = sys.stdin.buffer.readline readline sys.stdin.buffer.readline sys.stdin.buffer sys.stdin sys stdin buffer readline readlines = sys.stdin.buffer.readlines readlines sys.stdin.buffer.readlines sys.stdin.buffer sys.stdin sys stdin buffer readlines import numpy as np numpy MOD = 10**9 + 7 MOD 10**9 + 7 10**9 10 9 7 N,M,K = map(int,read().split()) N map(int,read().split()) map int read().split() ().split () read split M K 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 = 10**6 U 10**6 10 6 fact, fact_inv = make_fact(U,MOD) fact make_fact(U,MOD) make_fact U MOD fact_inv coef = fact[N*M-2] * fact_inv[K-2] % MOD * fact_inv[N*M-K] % MOD coef fact[N*M-2] * fact_inv[K-2] % MOD * fact_inv[N*M-K] % MOD fact[N*M-2] * fact_inv[K-2] % MOD * fact_inv[N*M-K] fact[N*M-2] * fact_inv[K-2] % MOD fact[N*M-2] * fact_inv[K-2] fact[N*M-2] fact N*M-2 N*M N M 2 fact_inv[K-2] fact_inv K-2 K 2 MOD fact_inv[N*M-K] fact_inv N*M-K N*M N M K MOD x = (N-1)*N*(N+1)*M*M//6 x (N-1)*N*(N+1)*M*M//6 (N-1)*N*(N+1)*M*M (N-1)*N*(N+1)*M (N-1)*N*(N+1) (N-1)*N N-1 N 1 N N+1 N 1 M M 6 y = (M-1)*M*(M+1)*N*N//6 y (M-1)*M*(M+1)*N*N//6 (M-1)*M*(M+1)*N*N (M-1)*M*(M+1)*N (M-1)*M*(M+1) (M-1)*M M-1 M 1 M M+1 M 1 N N 6 answer = coef * ((x+y) % MOD) % MOD answer coef * ((x+y) % MOD) % MOD coef * ((x+y) % MOD) coef (x+y) % MOD x+y x y MOD MOD print(answer) print answer readlines = sys.stdin.buffer.readlines sys.stdin.buffer.readlines readlines 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 = make_fact(U,MOD) make_fact(U,MOD) fact_inv y = (M-1)*M*(M+1)*N*N//6 (M-1)*M*(M+1)*N*N//6 y 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 U = 10**6 10**6 U x = (N-1)*N*(N+1)*M*M//6 (N-1)*N*(N+1)*M*M//6 x MOD = 10**9 + 7 10**9 + 7 MOD N,M,K = map(int,read().split()) map(int,read().split()) N answer = coef * ((x+y) % MOD) % MOD coef * ((x+y) % MOD) % MOD answer M,K = map(int,read().split()) map(int,read().split()) M coef = fact[N*M-2] * fact_inv[K-2] % MOD * fact_inv[N*M-K] % MOD fact[N*M-2] * fact_inv[K-2] % MOD * fact_inv[N*M-K] % MOD coef fact, fact_inv = make_fact(U,MOD) make_fact(U,MOD) fact readline = sys.stdin.buffer.readline sys.stdin.buffer.readline readline read = sys.stdin.buffer.read sys.stdin.buffer.read read K = map(int,read().split()) map(int,read().split()) K
import sys
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines

import numpy as np

# 2点間の距離の平均を求めればよい

MOD = 10**9 + 7

N,M,K = map(int,read().split())

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 = 10**6
fact, fact_inv = make_fact(U,MOD)

coef = fact[N*M-2] * fact_inv[K-2] % MOD * fact_inv[N*M-K] % MOD

x = (N-1)*N*(N+1)*M*M//6
y = (M-1)*M*(M+1)*N*N//6
answer = coef * ((x+y) % MOD) % MOD
print(answer)