MAX = 10**9 + 7

def mod_inv(i, mod):
    return pow(i, mod-2, mod)

def combination(_N, _K):
    if _K > (_N/2):
        _K = _N - _K
    up = 1
    low = 1
    for i in range (_K):
        up = up * (_N - i) % MAX
        low = low * (i + 1) % MAX
    ret = up * mod_inv(low, MAX) % MAX
    return ret

def cum_sum(N):
    return N * (N+1) // 2

def solve2():
    N, M, K = [int(_) for _ in raw_input().split()]
    sumx = 0
    for xi in range(1, N+1):
        sumx = (sumx + cum_sum(N) - (N + 1 - xi) * xi)
    sumx = (sumx * M * M) // 2 %MAX
    sumy = 0
    for yi in range(1, M+1):
        sumy = (sumy + cum_sum(M) - (M + 1 - yi) * yi)
    sumy = (sumy * N * N) // 2 %MAX
    ret = (sumx + sumy) * combination(M*N-2, K-2) % MAX
    print ret

if __name__ == '__main__':
    solve2() MAX = 10**9 + 7 MAX 10**9 + 7 10**9 10 9 7 def mod_inv(i, mod):
    return pow(i, mod-2, mod) mod_inv return pow(i, mod-2, mod) pow(i, mod-2, mod) pow i mod-2 mod 2 mod i i mod mod def combination(_N, _K):
    if _K > (_N/2):
        _K = _N - _K
    up = 1
    low = 1
    for i in range (_K):
        up = up * (_N - i) % MAX
        low = low * (i + 1) % MAX
    ret = up * mod_inv(low, MAX) % MAX
    return ret combination if _K > (_N/2):
        _K = _N - _K
     _K > (_N/2) _K _N/2 _N 2 _K = _N - _K _K _N - _K _N _K up = 1 up 1 low = 1 low 1 for i in range (_K):
        up = up * (_N - i) % MAX
        low = low * (i + 1) % MAX
     i range (_K) range _K up = up * (_N - i) % MAX up up * (_N - i) % MAX up * (_N - i) up _N - i _N i MAX low = low * (i + 1) % MAX low low * (i + 1) % MAX low * (i + 1) low i + 1 i 1 MAX ret = up * mod_inv(low, MAX) % MAX ret up * mod_inv(low, MAX) % MAX up * mod_inv(low, MAX) up mod_inv(low, MAX) mod_inv low MAX MAX return ret ret _N _N _K _K def cum_sum(N):
    return N * (N+1) // 2 cum_sum return N * (N+1) // 2 N * (N+1) // 2 N * (N+1) N N+1 N 1 2 N N def solve2():
    N, M, K = [int(_) for _ in raw_input().split()]
    sumx = 0
    for xi in range(1, N+1):
        sumx = (sumx + cum_sum(N) - (N + 1 - xi) * xi)
    sumx = (sumx * M * M) // 2 %MAX
    sumy = 0
    for yi in range(1, M+1):
        sumy = (sumy + cum_sum(M) - (M + 1 - yi) * yi)
    sumy = (sumy * N * N) // 2 %MAX
    ret = (sumx + sumy) * combination(M*N-2, K-2) % MAX
    print ret solve2 int(_) for _ in raw_input().split() for _ in raw_input().split() _ raw_input().split() ().split () raw_input split for _ in raw_input().split() int(_) int _ N, M, K = [int(_) for _ in raw_input().split()] N [int(_) for _ in raw_input().split()] M K sumx = 0 sumx 0 for xi in range(1, N+1):
        sumx = (sumx + cum_sum(N) - (N + 1 - xi) * xi)
     xi range(1, N+1) range 1 N+1 N 1 sumx = (sumx + cum_sum(N) - (N + 1 - xi) * xi) sumx sumx + cum_sum(N) - (N + 1 - xi) * xi sumx + cum_sum(N) sumx cum_sum(N) cum_sum N (N + 1 - xi) * xi N + 1 - xi N + 1 N 1 xi xi sumx = (sumx * M * M) // 2 %MAX sumx (sumx * M * M) // 2 %MAX (sumx * M * M) // 2 sumx * M * M sumx * M sumx M M 2 MAX sumy = 0 sumy 0 for yi in range(1, M+1):
        sumy = (sumy + cum_sum(M) - (M + 1 - yi) * yi)
     yi range(1, M+1) range 1 M+1 M 1 sumy = (sumy + cum_sum(M) - (M + 1 - yi) * yi) sumy sumy + cum_sum(M) - (M + 1 - yi) * yi sumy + cum_sum(M) sumy cum_sum(M) cum_sum M (M + 1 - yi) * yi M + 1 - yi M + 1 M 1 yi yi sumy = (sumy * N * N) // 2 %MAX sumy (sumy * N * N) // 2 %MAX (sumy * N * N) // 2 sumy * N * N sumy * N sumy N N 2 MAX ret = (sumx + sumy) * combination(M*N-2, K-2) % MAX ret (sumx + sumy) * combination(M*N-2, K-2) % MAX (sumx + sumy) * combination(M*N-2, K-2) sumx + sumy sumx sumy combination(M*N-2, K-2) combination M*N-2 M*N M N 2 K-2 K 2 MAX print if __name__ == '__main__':
    solve2() __name__ == '__main__' __name__ '__main__' solve2() solve2 def combination(_N, _K):
    if _K > (_N/2):
        _K = _N - _K
    up = 1
    low = 1
    for i in range (_K):
        up = up * (_N - i) % MAX
        low = low * (i + 1) % MAX
    ret = up * mod_inv(low, MAX) % MAX
    return ret def combination(_N, _K):
    if _K > (_N/2):
        _K = _N - _K
    up = 1
    low = 1
    for i in range (_K):
        up = up * (_N - i) % MAX
        low = low * (i + 1) % MAX
    ret = up * mod_inv(low, MAX) % MAX
    return ret combination def solve2():
    N, M, K = [int(_) for _ in raw_input().split()]
    sumx = 0
    for xi in range(1, N+1):
        sumx = (sumx + cum_sum(N) - (N + 1 - xi) * xi)
    sumx = (sumx * M * M) // 2 %MAX
    sumy = 0
    for yi in range(1, M+1):
        sumy = (sumy + cum_sum(M) - (M + 1 - yi) * yi)
    sumy = (sumy * N * N) // 2 %MAX
    ret = (sumx + sumy) * combination(M*N-2, K-2) % MAX
    print ret def solve2():
    N, M, K = [int(_) for _ in raw_input().split()]
    sumx = 0
    for xi in range(1, N+1):
        sumx = (sumx + cum_sum(N) - (N + 1 - xi) * xi)
    sumx = (sumx * M * M) // 2 %MAX
    sumy = 0
    for yi in range(1, M+1):
        sumy = (sumy + cum_sum(M) - (M + 1 - yi) * yi)
    sumy = (sumy * N * N) // 2 %MAX
    ret = (sumx + sumy) * combination(M*N-2, K-2) % MAX
    print ret solve2 def mod_inv(i, mod):
    return pow(i, mod-2, mod) def mod_inv(i, mod):
    return pow(i, mod-2, mod) mod_inv MAX = 10**9 + 7 10**9 + 7 MAX def cum_sum(N):
    return N * (N+1) // 2 def cum_sum(N):
    return N * (N+1) // 2 cum_sum
MAX = 10**9 + 7

def mod_inv(i, mod):
    return pow(i, mod-2, mod)

def combination(_N, _K):
    if _K > (_N/2):
        _K = _N - _K
    up = 1
    low = 1
    for i in range (_K):
        up = up * (_N - i) % MAX
        low = low * (i + 1) % MAX
    ret = up * mod_inv(low, MAX) % MAX
    return ret

def cum_sum(N):
    return N * (N+1) // 2

def solve2():
    N, M, K = [int(_) for _ in raw_input().split()]
    sumx = 0
    for xi in range(1, N+1):
        sumx = (sumx + cum_sum(N) - (N + 1 - xi) * xi)
    sumx = (sumx * M * M) // 2 %MAX
    sumy = 0
    for yi in range(1, M+1):
        sumy = (sumy + cum_sum(M) - (M + 1 - yi) * yi)
    sumy = (sumy * N * N) // 2 %MAX
    ret = (sumx + sumy) * combination(M*N-2, K-2) % MAX
    print ret

if __name__ == '__main__':
    solve2()
