N,M,K = map(int,input().split())
MOD = 10**9+7

MAXN = N*M+5
fac = [1,1] + [0]*MAXN
finv = [1,1] + [0]*MAXN
inv = [0,1] + [0]*MAXN
for i in range(2,MAXN+2):
    fac[i] = fac[i-1] * i % MOD
    inv[i] = -inv[MOD%i] * (MOD // i) % MOD
    finv[i] = finv[i-1] * inv[i] % MOD

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

a = 0
for d in range(1,N):
    a += d*(N-d)*M*M
b = 0
for d in range(1,M):
    b += d*(M-d)*N*N

ans = (a+b) * comb(N*M-2, K-2)
ans %= MOD
print(ans) N,M,K = map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split M K MOD = 10**9+7 MOD 10**9+7 10**9 10 9 7 MAXN = N*M+5 MAXN N*M+5 N*M N M 5 fac = [1,1] + [0]*MAXN fac [1,1] + [0]*MAXN [1,1] 1 1 [0]*MAXN [0] 0 MAXN finv = [1,1] + [0]*MAXN finv [1,1] + [0]*MAXN [1,1] 1 1 [0]*MAXN [0] 0 MAXN inv = [0,1] + [0]*MAXN inv [0,1] + [0]*MAXN [0,1] 0 1 [0]*MAXN [0] 0 MAXN for i in range(2,MAXN+2):
    fac[i] = fac[i-1] * i % MOD
    inv[i] = -inv[MOD%i] * (MOD // i) % MOD
    finv[i] = finv[i-1] * inv[i] % MOD i range(2,MAXN+2) range 2 MAXN+2 MAXN 2 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] = -inv[MOD%i] * (MOD // i) % MOD inv[i] inv i -inv[MOD%i] * (MOD // i) % MOD -inv[MOD%i] * (MOD // i) -inv[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 comb(n,r):
    if n < r: return 0
    if n < 0 or r < 0: return 0
    return fac[n] * (finv[r] * finv[n-r] % MOD) % MOD comb if n < r: return 0
     n < r n r if n < 0 or r < 0: return 0
     n < 0 or r < 0 n < 0 n 0 r < 0 r 0 return fac[n] * (finv[r] * finv[n-r] % MOD) % MOD fac[n] * (finv[r] * finv[n-r] % MOD) % MOD fac[n] * (finv[r] * finv[n-r] % MOD) fac[n] fac n finv[r] * finv[n-r] % MOD finv[r] * finv[n-r] finv[r] finv r finv[n-r] finv n-r n r MOD MOD n n r r a = 0 a 0 for d in range(1,N):
    a += d*(N-d)*M*M d range(1,N) range 1 N a += d*(N-d)*M*M a d*(N-d)*M*M d*(N-d)*M d*(N-d) d N-d N d M M b = 0 b 0 for d in range(1,M):
    b += d*(M-d)*N*N d range(1,M) range 1 M b += d*(M-d)*N*N b d*(M-d)*N*N d*(M-d)*N d*(M-d) d M-d M d N N ans = (a+b) * comb(N*M-2, K-2) ans (a+b) * comb(N*M-2, K-2) a+b a b comb(N*M-2, K-2) comb N*M-2 N*M N M 2 K-2 K 2 ans %= MOD ans MOD print(ans) print ans finv = [1,1] + [0]*MAXN [1,1] + [0]*MAXN finv K = map(int,input().split()) map(int,input().split()) K ans %= MOD MOD ans fac = [1,1] + [0]*MAXN [1,1] + [0]*MAXN fac b += d*(M-d)*N*N d*(M-d)*N*N b a = 0 0 a b = 0 0 b ans = (a+b) * comb(N*M-2, K-2) (a+b) * comb(N*M-2, K-2) ans M,K = map(int,input().split()) map(int,input().split()) M MAXN = N*M+5 N*M+5 MAXN MOD = 10**9+7 10**9+7 MOD inv = [0,1] + [0]*MAXN [0,1] + [0]*MAXN inv N,M,K = map(int,input().split()) map(int,input().split()) N def comb(n,r):
    if n < r: return 0
    if n < 0 or r < 0: return 0
    return fac[n] * (finv[r] * finv[n-r] % MOD) % MOD def comb(n,r):
    if n < r: return 0
    if n < 0 or r < 0: return 0
    return fac[n] * (finv[r] * finv[n-r] % MOD) % MOD comb a += d*(N-d)*M*M d*(N-d)*M*M a
N,M,K = map(int,input().split())
MOD = 10**9+7

MAXN = N*M+5
fac = [1,1] + [0]*MAXN
finv = [1,1] + [0]*MAXN
inv = [0,1] + [0]*MAXN
for i in range(2,MAXN+2):
    fac[i] = fac[i-1] * i % MOD
    inv[i] = -inv[MOD%i] * (MOD // i) % MOD
    finv[i] = finv[i-1] * inv[i] % MOD

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

a = 0
for d in range(1,N):
    a += d*(N-d)*M*M
b = 0
for d in range(1,M):
    b += d*(M-d)*N*N

ans = (a+b) * comb(N*M-2, K-2)
ans %= MOD
print(ans)