import sys
def MI(): return map(int,sys.stdin.readline().rstrip().split())

N,M,K = MI()
mod = 10**9+7


def kaijou(n):
    res = 1
    for i in range(1,n+1):
        res *= i
        res %= mod
    return res

def nCr(n,r):
    return (kaijou(n)*pow(kaijou(r),mod-2,mod)*pow(kaijou(n-r),mod-2,mod)) % mod


a = N*(N+1)*(N-1)//6 * M**2 + M*(M+1)*(M-1)//6 * N**2
a %= mod
print((nCr(N*M-2,K-2) * a) % mod) import sys sys def MI(): return map(int,sys.stdin.readline().rstrip().split()) MI N,M,K = MI() N MI() MI M K mod = 10**9+7 mod 10**9+7 10**9 10 9 7 def kaijou(n):
    res = 1
    for i in range(1,n+1):
        res *= i
        res %= mod
    return res kaijou res = 1 res 1 for i in range(1,n+1):
        res *= i
        res %= mod
     i range(1,n+1) range 1 n+1 n 1 res *= i res i res %= mod res mod return res res n n def nCr(n,r):
    return (kaijou(n)*pow(kaijou(r),mod-2,mod)*pow(kaijou(n-r),mod-2,mod)) % mod nCr return (kaijou(n)*pow(kaijou(r),mod-2,mod)*pow(kaijou(n-r),mod-2,mod)) % mod (kaijou(n)*pow(kaijou(r),mod-2,mod)*pow(kaijou(n-r),mod-2,mod)) % mod kaijou(n)*pow(kaijou(r),mod-2,mod)*pow(kaijou(n-r),mod-2,mod) kaijou(n)*pow(kaijou(r),mod-2,mod) kaijou(n) kaijou n pow(kaijou(r),mod-2,mod) pow kaijou(r) kaijou r mod-2 mod 2 mod pow(kaijou(n-r),mod-2,mod) pow kaijou(n-r) kaijou n-r n r mod-2 mod 2 mod mod n n r r a = N*(N+1)*(N-1)//6 * M**2 + M*(M+1)*(M-1)//6 * N**2 a N*(N+1)*(N-1)//6 * M**2 + M*(M+1)*(M-1)//6 * N**2 N*(N+1)*(N-1)//6 * M**2 N*(N+1)*(N-1)//6 N*(N+1)*(N-1) N*(N+1) N N+1 N 1 N-1 N 1 6 M**2 M 2 M*(M+1)*(M-1)//6 * N**2 M*(M+1)*(M-1)//6 M*(M+1)*(M-1) M*(M+1) M M+1 M 1 M-1 M 1 6 N**2 N 2 a %= mod a mod print((nCr(N*M-2,K-2) * a) % mod) print (nCr(N*M-2,K-2) * a) % mod nCr(N*M-2,K-2) * a nCr(N*M-2,K-2) nCr N*M-2 N*M N M 2 K-2 K 2 a mod N,M,K = MI() MI() N a %= mod mod a mod = 10**9+7 10**9+7 mod def nCr(n,r):
    return (kaijou(n)*pow(kaijou(r),mod-2,mod)*pow(kaijou(n-r),mod-2,mod)) % mod def nCr(n,r):
    return (kaijou(n)*pow(kaijou(r),mod-2,mod)*pow(kaijou(n-r),mod-2,mod)) % mod nCr a = N*(N+1)*(N-1)//6 * M**2 + M*(M+1)*(M-1)//6 * N**2 N*(N+1)*(N-1)//6 * M**2 + M*(M+1)*(M-1)//6 * N**2 a def MI(): return map(int,sys.stdin.readline().rstrip().split()) def MI(): return map(int,sys.stdin.readline().rstrip().split()) MI K = MI() MI() K def kaijou(n):
    res = 1
    for i in range(1,n+1):
        res *= i
        res %= mod
    return res def kaijou(n):
    res = 1
    for i in range(1,n+1):
        res *= i
        res %= mod
    return res kaijou M,K = MI() MI() M
import sys
def MI(): return map(int,sys.stdin.readline().rstrip().split())

N,M,K = MI()
mod = 10**9+7


def kaijou(n):
    res = 1
    for i in range(1,n+1):
        res *= i
        res %= mod
    return res

def nCr(n,r):
    return (kaijou(n)*pow(kaijou(r),mod-2,mod)*pow(kaijou(n-r),mod-2,mod)) % mod


a = N*(N+1)*(N-1)//6 * M**2 + M*(M+1)*(M-1)//6 * N**2
a %= mod
print((nCr(N*M-2,K-2) * a) % mod)
