import math

MOD = int(10**9 + 7)

def egcd(a, b):
    if a ==  0:
        return (b, 0, 1)
    else:
        g, y, x = egcd(b%a, a)
        return (g, x - (b//a) * y, y)

def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        raise Exception("No inverse exists")
    else:
        return x % m

def combination(n, r):
    return math.factorial(n)%MOD * modinv(math.factorial(r), MOD) * modinv(math.factorial(n-r), MOD) % MOD
    # return math.factorial(n) // math.factorial(r) // math.factorial(n-r)

N, M, K = map(lambda x: int(x), input().split())

ans = 0

k = combination(N*M-2, K-2)

for d in range(1, N):
    ans += (d * k * M * M * (N - d))%MOD

for d in range(1, M):
    ans += (d * k * N * N * (M - d))%MOD

print(ans % MOD) import math math MOD = int(10**9 + 7) MOD int(10**9 + 7) int 10**9 + 7 10**9 10 9 7 def egcd(a, b):
    if a ==  0:
        return (b, 0, 1)
    else:
        g, y, x = egcd(b%a, a)
        return (g, x - (b//a) * y, y) egcd if a ==  0:
        return (b, 0, 1)
    else:
        g, y, x = egcd(b%a, a)
        return (g, x - (b//a) * y, y) a ==  0 a 0 return (b, 0, 1) (b, 0, 1) b 0 1 g, y, x = egcd(b%a, a) g egcd(b%a, a) egcd b%a b a a y x return (g, x - (b//a) * y, y) (g, x - (b//a) * y, y) g x - (b//a) * y x (b//a) * y b//a b a y y a a b b def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        raise Exception("No inverse exists")
    else:
        return x % m modinv g, x, y = egcd(a, m) g egcd(a, m) egcd a m x y if g != 1:
        raise Exception("No inverse exists")
    else:
        return x % m g != 1 g 1 raise Exception("No inverse exists") Exception("No inverse exists") Exception "No inverse exists" return x % m x % m x m a a m m def combination(n, r):
    return math.factorial(n)%MOD * modinv(math.factorial(r), MOD) * modinv(math.factorial(n-r), MOD) % MOD
    # return math.factorial(n) // math.factorial(r) // math.factorial(n-r) combination return math.factorial(n)%MOD * modinv(math.factorial(r), MOD) * modinv(math.factorial(n-r), MOD) % MOD math.factorial(n)%MOD * modinv(math.factorial(r), MOD) * modinv(math.factorial(n-r), MOD) % MOD math.factorial(n)%MOD * modinv(math.factorial(r), MOD) * modinv(math.factorial(n-r), MOD) math.factorial(n)%MOD * modinv(math.factorial(r), MOD) math.factorial(n)%MOD math.factorial(n) math.factorial math factorial n MOD modinv(math.factorial(r), MOD) modinv math.factorial(r) math.factorial math factorial r MOD modinv(math.factorial(n-r), MOD) modinv math.factorial(n-r) math.factorial math factorial n-r n r MOD MOD n n r r N, M, K = map(lambda x: int(x), input().split()) N map(lambda x: int(x), input().split()) map lambda x: int(x) int(x) int x x input().split() ().split () input split M K ans = 0 ans 0 k = combination(N*M-2, K-2) k combination(N*M-2, K-2) combination N*M-2 N*M N M 2 K-2 K 2 for d in range(1, N):
    ans += (d * k * M * M * (N - d))%MOD d range(1, N) range 1 N ans += (d * k * M * M * (N - d))%MOD ans (d * k * M * M * (N - d))%MOD d * k * M * M * (N - d) d * k * M * M d * k * M d * k d k M M N - d N d MOD for d in range(1, M):
    ans += (d * k * N * N * (M - d))%MOD d range(1, M) range 1 M ans += (d * k * N * N * (M - d))%MOD ans (d * k * N * N * (M - d))%MOD d * k * N * N * (M - d) d * k * N * N d * k * N d * k d k N N M - d M d MOD print(ans % MOD) print ans % MOD ans MOD M, K = map(lambda x: int(x), input().split()) map(lambda x: int(x), input().split()) M def egcd(a, b):
    if a ==  0:
        return (b, 0, 1)
    else:
        g, y, x = egcd(b%a, a)
        return (g, x - (b//a) * y, y) def egcd(a, b):
    if a ==  0:
        return (b, 0, 1)
    else:
        g, y, x = egcd(b%a, a)
        return (g, x - (b//a) * y, y) egcd MOD = int(10**9 + 7) int(10**9 + 7) MOD ans += (d * k * N * N * (M - d))%MOD (d * k * N * N * (M - d))%MOD ans ans += (d * k * M * M * (N - d))%MOD (d * k * M * M * (N - d))%MOD ans ans = 0 0 ans def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        raise Exception("No inverse exists")
    else:
        return x % m def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        raise Exception("No inverse exists")
    else:
        return x % m modinv N, M, K = map(lambda x: int(x), input().split()) map(lambda x: int(x), input().split()) N def combination(n, r):
    return math.factorial(n)%MOD * modinv(math.factorial(r), MOD) * modinv(math.factorial(n-r), MOD) % MOD
    # return math.factorial(n) // math.factorial(r) // math.factorial(n-r) def combination(n, r):
    return math.factorial(n)%MOD * modinv(math.factorial(r), MOD) * modinv(math.factorial(n-r), MOD) % MOD
    # return math.factorial(n) // math.factorial(r) // math.factorial(n-r) combination K = map(lambda x: int(x), input().split()) map(lambda x: int(x), input().split()) K k = combination(N*M-2, K-2) combination(N*M-2, K-2) k
import math

MOD = int(10**9 + 7)

def egcd(a, b):
    if a ==  0:
        return (b, 0, 1)
    else:
        g, y, x = egcd(b%a, a)
        return (g, x - (b//a) * y, y)

def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        raise Exception("No inverse exists")
    else:
        return x % m

def combination(n, r):
    return math.factorial(n)%MOD * modinv(math.factorial(r), MOD) * modinv(math.factorial(n-r), MOD) % MOD
    # return math.factorial(n) // math.factorial(r) // math.factorial(n-r)

N, M, K = map(lambda x: int(x), input().split())

ans = 0

k = combination(N*M-2, K-2)

for d in range(1, N):
    ans += (d * k * M * M * (N - d))%MOD

for d in range(1, M):
    ans += (d * k * N * N * (M - d))%MOD

print(ans % MOD)
