import sys
sys.setrecursionlimit(100000000)
def input():
    return sys.stdin.readline()[:-1]
from bisect import *
from collections import *
from heapq import *
from math import *
N, M, K = map(int, input().split())
L = N*M
mod = 10**9+7
def factrial(N):
    fc = [1, 1] + [None] * N
    inv = [0, 1] + [None] * N
    fcInv = [1, 1] + [None] * N
    for i in range(2, N+1):
        fc[i] = i*fc[i-1]%mod
        inv[i] = mod-(inv[mod%i]*(mod//i))%mod
        fcInv[i] = fcInv[i-1]*inv[i]%mod
    return fc, fcInv
fc, fcInv = factrial(L)
def modCom(n, k):
    return 0 if n < k else fc[n] * fcInv[k] * fcInv[n-k] % mod
ans = 0
for d in range(1, N):
    ans += d*(N-d)*M*M*modCom(L-2, K-2)
    ans %= mod
for d in range(1, M):
    ans += d*(M-d)*N*N*modCom(L-2, K-2)
    ans %= mod
print(ans) import sys sys sys.setrecursionlimit(100000000) sys.setrecursionlimit sys setrecursionlimit 100000000 def input():
    return sys.stdin.readline()[:-1] input return sys.stdin.readline()[:-1] sys.stdin.readline()[:-1] sys.stdin.readline() sys.stdin.readline sys.stdin sys stdin readline :-1 -1 from bisect import * from collections import * from heapq import * from math import * N, M, K = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split M K L = N*M L N*M N M mod = 10**9+7 mod 10**9+7 10**9 10 9 7 def factrial(N):
    fc = [1, 1] + [None] * N
    inv = [0, 1] + [None] * N
    fcInv = [1, 1] + [None] * N
    for i in range(2, N+1):
        fc[i] = i*fc[i-1]%mod
        inv[i] = mod-(inv[mod%i]*(mod//i))%mod
        fcInv[i] = fcInv[i-1]*inv[i]%mod
    return fc, fcInv factrial fc = [1, 1] + [None] * N fc [1, 1] + [None] * N [1, 1] 1 1 [None] * N [None] None N inv = [0, 1] + [None] * N inv [0, 1] + [None] * N [0, 1] 0 1 [None] * N [None] None N fcInv = [1, 1] + [None] * N fcInv [1, 1] + [None] * N [1, 1] 1 1 [None] * N [None] None N for i in range(2, N+1):
        fc[i] = i*fc[i-1]%mod
        inv[i] = mod-(inv[mod%i]*(mod//i))%mod
        fcInv[i] = fcInv[i-1]*inv[i]%mod
     i range(2, N+1) range 2 N+1 N 1 fc[i] = i*fc[i-1]%mod fc[i] fc i i*fc[i-1]%mod i*fc[i-1] i fc[i-1] fc i-1 i 1 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 fcInv[i] = fcInv[i-1]*inv[i]%mod fcInv[i] fcInv i fcInv[i-1]*inv[i]%mod fcInv[i-1]*inv[i] fcInv[i-1] fcInv i-1 i 1 inv[i] inv i mod return fc, fcInv return fc, fcInv fc fcInv N N fc, fcInv = factrial(L) fc factrial(L) factrial L fcInv def modCom(n, k):
    return 0 if n < k else fc[n] * fcInv[k] * fcInv[n-k] % mod modCom return 0 if n < k else fc[n] * fcInv[k] * fcInv[n-k] % mod 0 if n < k else fc[n] * fcInv[k] * fcInv[n-k] % mod n < k n k 0 fc[n] * fcInv[k] * fcInv[n-k] % mod fc[n] * fcInv[k] * fcInv[n-k] fc[n] * fcInv[k] fc[n] fc n fcInv[k] fcInv k fcInv[n-k] fcInv n-k n k mod n n k k ans = 0 ans 0 for d in range(1, N):
    ans += d*(N-d)*M*M*modCom(L-2, K-2)
    ans %= mod d range(1, N) range 1 N ans += d*(N-d)*M*M*modCom(L-2, K-2) ans d*(N-d)*M*M*modCom(L-2, K-2) d*(N-d)*M*M d*(N-d)*M d*(N-d) d N-d N d M M modCom(L-2, K-2) modCom L-2 L 2 K-2 K 2 ans %= mod ans mod for d in range(1, M):
    ans += d*(M-d)*N*N*modCom(L-2, K-2)
    ans %= mod d range(1, M) range 1 M ans += d*(M-d)*N*N*modCom(L-2, K-2) ans d*(M-d)*N*N*modCom(L-2, K-2) d*(M-d)*N*N d*(M-d)*N d*(M-d) d M-d M d N N modCom(L-2, K-2) modCom L-2 L 2 K-2 K 2 ans %= mod ans mod print(ans) print ans ans %= mod mod ans ans %= mod mod ans fc, fcInv = factrial(L) factrial(L) fc mod = 10**9+7 10**9+7 mod ans += d*(N-d)*M*M*modCom(L-2, K-2) d*(N-d)*M*M*modCom(L-2, K-2) ans K = map(int, input().split()) map(int, input().split()) K ans = 0 0 ans def modCom(n, k):
    return 0 if n < k else fc[n] * fcInv[k] * fcInv[n-k] % mod def modCom(n, k):
    return 0 if n < k else fc[n] * fcInv[k] * fcInv[n-k] % mod modCom M, K = map(int, input().split()) map(int, input().split()) M N, M, K = map(int, input().split()) map(int, input().split()) N def factrial(N):
    fc = [1, 1] + [None] * N
    inv = [0, 1] + [None] * N
    fcInv = [1, 1] + [None] * N
    for i in range(2, N+1):
        fc[i] = i*fc[i-1]%mod
        inv[i] = mod-(inv[mod%i]*(mod//i))%mod
        fcInv[i] = fcInv[i-1]*inv[i]%mod
    return fc, fcInv def factrial(N):
    fc = [1, 1] + [None] * N
    inv = [0, 1] + [None] * N
    fcInv = [1, 1] + [None] * N
    for i in range(2, N+1):
        fc[i] = i*fc[i-1]%mod
        inv[i] = mod-(inv[mod%i]*(mod//i))%mod
        fcInv[i] = fcInv[i-1]*inv[i]%mod
    return fc, fcInv factrial ans += d*(M-d)*N*N*modCom(L-2, K-2) d*(M-d)*N*N*modCom(L-2, K-2) ans L = N*M N*M L def input():
    return sys.stdin.readline()[:-1] def input():
    return sys.stdin.readline()[:-1] input fcInv = factrial(L) factrial(L) fcInv
import sys
sys.setrecursionlimit(100000000)
def input():
    return sys.stdin.readline()[:-1]
from bisect import *
from collections import *
from heapq import *
from math import *
N, M, K = map(int, input().split())
L = N*M
mod = 10**9+7
def factrial(N):
    fc = [1, 1] + [None] * N
    inv = [0, 1] + [None] * N
    fcInv = [1, 1] + [None] * N
    for i in range(2, N+1):
        fc[i] = i*fc[i-1]%mod
        inv[i] = mod-(inv[mod%i]*(mod//i))%mod
        fcInv[i] = fcInv[i-1]*inv[i]%mod
    return fc, fcInv
fc, fcInv = factrial(L)
def modCom(n, k):
    return 0 if n < k else fc[n] * fcInv[k] * fcInv[n-k] % mod
ans = 0
for d in range(1, N):
    ans += d*(N-d)*M*M*modCom(L-2, K-2)
    ans %= mod
for d in range(1, M):
    ans += d*(M-d)*N*N*modCom(L-2, K-2)
    ans %= mod
print(ans)
