from itertools import combinations

def solve(N, M, K):
    #A = [(n, m) for n in range(N) for m in range(M)]
    r = 0
    for x in range(N):
        r += x * (N - x) * M * M
    for y in range(M):
        r += y * (M - y) * N * N
    return r

def main():
    N, M, K = map(int, input().split())
    g1 = [1, 1]
    g2 = [1, 1]
    inverse = [0, 1]
    mod = 10 ** 9 + 7
    for i in range(2, N * M):
        g1.append((g1[-1] * i) % mod)
        inverse.append((-inverse[mod % i] * (mod // i)) % mod)
        g2.append((g2[-1] * inverse[-1]) % mod)
    t = solve(N, M, 2)
    for k in range(2, K):
        t = t * (N * M - k) * inverse[k - 1] % mod
    print(t)

main() from itertools import combinations def solve(N, M, K):
    #A = [(n, m) for n in range(N) for m in range(M)]
    r = 0
    for x in range(N):
        r += x * (N - x) * M * M
    for y in range(M):
        r += y * (M - y) * N * N
    return r solve r = 0 r 0 for x in range(N):
        r += x * (N - x) * M * M
     x range(N) range N r += x * (N - x) * M * M r x * (N - x) * M * M x * (N - x) * M x * (N - x) x N - x N x M M for y in range(M):
        r += y * (M - y) * N * N
     y range(M) range M r += y * (M - y) * N * N r y * (M - y) * N * N y * (M - y) * N y * (M - y) y M - y M y N N return r r N N M M K K def main():
    N, M, K = map(int, input().split())
    g1 = [1, 1]
    g2 = [1, 1]
    inverse = [0, 1]
    mod = 10 ** 9 + 7
    for i in range(2, N * M):
        g1.append((g1[-1] * i) % mod)
        inverse.append((-inverse[mod % i] * (mod // i)) % mod)
        g2.append((g2[-1] * inverse[-1]) % mod)
    t = solve(N, M, 2)
    for k in range(2, K):
        t = t * (N * M - k) * inverse[k - 1] % mod
    print(t) main N, M, K = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split M K g1 = [1, 1] g1 [1, 1] 1 1 g2 = [1, 1] g2 [1, 1] 1 1 inverse = [0, 1] inverse [0, 1] 0 1 mod = 10 ** 9 + 7 mod 10 ** 9 + 7 10 ** 9 10 9 7 for i in range(2, N * M):
        g1.append((g1[-1] * i) % mod)
        inverse.append((-inverse[mod % i] * (mod // i)) % mod)
        g2.append((g2[-1] * inverse[-1]) % mod)
     i range(2, N * M) range 2 N * M N M g1.append((g1[-1] * i) % mod) g1.append g1 append (g1[-1] * i) % mod g1[-1] * i g1[-1] g1 -1 i mod inverse.append((-inverse[mod % i] * (mod // i)) % mod) inverse.append inverse append (-inverse[mod % i] * (mod // i)) % mod -inverse[mod % i] * (mod // i) -inverse[mod % i] inverse[mod % i] inverse mod % i mod i mod // i mod i mod g2.append((g2[-1] * inverse[-1]) % mod) g2.append g2 append (g2[-1] * inverse[-1]) % mod g2[-1] * inverse[-1] g2[-1] g2 -1 inverse[-1] inverse -1 mod t = solve(N, M, 2) t solve(N, M, 2) solve N M 2 for k in range(2, K):
        t = t * (N * M - k) * inverse[k - 1] % mod
     k range(2, K) range 2 K t = t * (N * M - k) * inverse[k - 1] % mod t t * (N * M - k) * inverse[k - 1] % mod t * (N * M - k) * inverse[k - 1] t * (N * M - k) t N * M - k N * M N M k inverse[k - 1] inverse k - 1 k 1 mod print(t) print t main() main def main():
    N, M, K = map(int, input().split())
    g1 = [1, 1]
    g2 = [1, 1]
    inverse = [0, 1]
    mod = 10 ** 9 + 7
    for i in range(2, N * M):
        g1.append((g1[-1] * i) % mod)
        inverse.append((-inverse[mod % i] * (mod // i)) % mod)
        g2.append((g2[-1] * inverse[-1]) % mod)
    t = solve(N, M, 2)
    for k in range(2, K):
        t = t * (N * M - k) * inverse[k - 1] % mod
    print(t) def main():
    N, M, K = map(int, input().split())
    g1 = [1, 1]
    g2 = [1, 1]
    inverse = [0, 1]
    mod = 10 ** 9 + 7
    for i in range(2, N * M):
        g1.append((g1[-1] * i) % mod)
        inverse.append((-inverse[mod % i] * (mod // i)) % mod)
        g2.append((g2[-1] * inverse[-1]) % mod)
    t = solve(N, M, 2)
    for k in range(2, K):
        t = t * (N * M - k) * inverse[k - 1] % mod
    print(t) main def solve(N, M, K):
    #A = [(n, m) for n in range(N) for m in range(M)]
    r = 0
    for x in range(N):
        r += x * (N - x) * M * M
    for y in range(M):
        r += y * (M - y) * N * N
    return r def solve(N, M, K):
    #A = [(n, m) for n in range(N) for m in range(M)]
    r = 0
    for x in range(N):
        r += x * (N - x) * M * M
    for y in range(M):
        r += y * (M - y) * N * N
    return r solve
from itertools import combinations

def solve(N, M, K):
    #A = [(n, m) for n in range(N) for m in range(M)]
    r = 0
    for x in range(N):
        r += x * (N - x) * M * M
    for y in range(M):
        r += y * (M - y) * N * N
    return r

def main():
    N, M, K = map(int, input().split())
    g1 = [1, 1]
    g2 = [1, 1]
    inverse = [0, 1]
    mod = 10 ** 9 + 7
    for i in range(2, N * M):
        g1.append((g1[-1] * i) % mod)
        inverse.append((-inverse[mod % i] * (mod // i)) % mod)
        g2.append((g2[-1] * inverse[-1]) % mod)
    t = solve(N, M, 2)
    for k in range(2, K):
        t = t * (N * M - k) * inverse[k - 1] % mod
    print(t)

main()
