def cmb(n, r, mod):
    if (r < 0 or r > n):
        return 0
    r = min(r, n - r)
    return g1[n] * g2[r] * g2[n - r] % mod


mod = 10**9 + 7
N = 3 * 10**5  #出力の制限
g1 = [1, 1]  # 元テーブル
g2 = [1, 1]  #逆元テーブル
inverse = [0, 1]  #逆元テーブル計算用テーブル

for i in range(2, N + 1):
    g1.append((g1[-1] * i) % mod)
    inverse.append((-inverse[mod % i] * (mod // i)) % mod)
    g2.append((g2[-1] * inverse[-1]) % mod)

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

mod = 10**9 + 7

base_n = 0
base_m = 0

for i in range(M):
    if i == 0:
        s = (M * (M - 1) // 2) % mod
    else:
        s += (i - (M - i))
    base_m = (base_m + s + mod) % mod
for i in range(N):
    if i == 0:
        s = (N * (N - 1) // 2) % mod
    else:
        s += (i - (N - i))
    base_n = (base_n + s + mod) % mod
base = (base_m * N * N + base_n * M * M) * g2[2] % mod

ans = base * cmb((N * M) - 2, K - 2, mod) % mod

print(ans) def cmb(n, r, mod):
    if (r < 0 or r > n):
        return 0
    r = min(r, n - r)
    return g1[n] * g2[r] * g2[n - r] % mod cmb if (r < 0 or r > n):
        return 0
     r < 0 or r > n r < 0 r 0 r > n r n return 0 0 r = min(r, n - r) r min(r, n - r) min r n - r n r return g1[n] * g2[r] * g2[n - r] % mod g1[n] * g2[r] * g2[n - r] % mod g1[n] * g2[r] * g2[n - r] g1[n] * g2[r] g1[n] g1 n g2[r] g2 r g2[n - r] g2 n - r n r mod n n r r mod mod mod = 10**9 + 7 mod 10**9 + 7 10**9 10 9 7 N = 3 * 10**5 N 3 * 10**5 3 10**5 10 5 g1 = [1, 1] g1 [1, 1] 1 1 g2 = [1, 1] g2 [1, 1] 1 1 inverse = [0, 1] inverse [0, 1] 0 1 for i in range(2, N + 1):
    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 + 1) range 2 N + 1 N 1 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 N, M, K = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split M K mod = 10**9 + 7 mod 10**9 + 7 10**9 10 9 7 base_n = 0 base_n 0 base_m = 0 base_m 0 for i in range(M):
    if i == 0:
        s = (M * (M - 1) // 2) % mod
    else:
        s += (i - (M - i))
    base_m = (base_m + s + mod) % mod i range(M) range M if i == 0:
        s = (M * (M - 1) // 2) % mod
    else:
        s += (i - (M - i))
     i == 0 i 0 s = (M * (M - 1) // 2) % mod s (M * (M - 1) // 2) % mod M * (M - 1) // 2 M * (M - 1) M M - 1 M 1 2 mod s += (i - (M - i)) s i - (M - i) i M - i M i base_m = (base_m + s + mod) % mod base_m (base_m + s + mod) % mod base_m + s + mod base_m + s base_m s mod mod for i in range(N):
    if i == 0:
        s = (N * (N - 1) // 2) % mod
    else:
        s += (i - (N - i))
    base_n = (base_n + s + mod) % mod i range(N) range N if i == 0:
        s = (N * (N - 1) // 2) % mod
    else:
        s += (i - (N - i))
     i == 0 i 0 s = (N * (N - 1) // 2) % mod s (N * (N - 1) // 2) % mod N * (N - 1) // 2 N * (N - 1) N N - 1 N 1 2 mod s += (i - (N - i)) s i - (N - i) i N - i N i base_n = (base_n + s + mod) % mod base_n (base_n + s + mod) % mod base_n + s + mod base_n + s base_n s mod mod base = (base_m * N * N + base_n * M * M) * g2[2] % mod base (base_m * N * N + base_n * M * M) * g2[2] % mod (base_m * N * N + base_n * M * M) * g2[2] base_m * N * N + base_n * M * M base_m * N * N base_m * N base_m N N base_n * M * M base_n * M base_n M M g2[2] g2 2 mod ans = base * cmb((N * M) - 2, K - 2, mod) % mod ans base * cmb((N * M) - 2, K - 2, mod) % mod base * cmb((N * M) - 2, K - 2, mod) base cmb((N * M) - 2, K - 2, mod) cmb (N * M) - 2 N * M N M 2 K - 2 K 2 mod mod print(ans) print ans K = map(int, input().split()) map(int, input().split()) K mod = 10**9 + 7 10**9 + 7 mod g2 = [1, 1] [1, 1] g2 N = 3 * 10**5 3 * 10**5 N base_n = (base_n + s + mod) % mod (base_n + s + mod) % mod base_n s = (N * (N - 1) // 2) % mod (N * (N - 1) // 2) % mod s base_m = 0 0 base_m M, K = map(int, input().split()) map(int, input().split()) M g1 = [1, 1] [1, 1] g1 s += (i - (N - i)) i - (N - i) s ans = base * cmb((N * M) - 2, K - 2, mod) % mod base * cmb((N * M) - 2, K - 2, mod) % mod ans N, M, K = map(int, input().split()) map(int, input().split()) N s = (M * (M - 1) // 2) % mod (M * (M - 1) // 2) % mod s s += (i - (M - i)) i - (M - i) s mod = 10**9 + 7 10**9 + 7 mod base_n = 0 0 base_n def cmb(n, r, mod):
    if (r < 0 or r > n):
        return 0
    r = min(r, n - r)
    return g1[n] * g2[r] * g2[n - r] % mod def cmb(n, r, mod):
    if (r < 0 or r > n):
        return 0
    r = min(r, n - r)
    return g1[n] * g2[r] * g2[n - r] % mod cmb inverse = [0, 1] [0, 1] inverse base_m = (base_m + s + mod) % mod (base_m + s + mod) % mod base_m base = (base_m * N * N + base_n * M * M) * g2[2] % mod (base_m * N * N + base_n * M * M) * g2[2] % mod base
def cmb(n, r, mod):
    if (r < 0 or r > n):
        return 0
    r = min(r, n - r)
    return g1[n] * g2[r] * g2[n - r] % mod


mod = 10**9 + 7
N = 3 * 10**5  #出力の制限
g1 = [1, 1]  # 元テーブル
g2 = [1, 1]  #逆元テーブル
inverse = [0, 1]  #逆元テーブル計算用テーブル

for i in range(2, N + 1):
    g1.append((g1[-1] * i) % mod)
    inverse.append((-inverse[mod % i] * (mod // i)) % mod)
    g2.append((g2[-1] * inverse[-1]) % mod)

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

mod = 10**9 + 7

base_n = 0
base_m = 0

for i in range(M):
    if i == 0:
        s = (M * (M - 1) // 2) % mod
    else:
        s += (i - (M - i))
    base_m = (base_m + s + mod) % mod
for i in range(N):
    if i == 0:
        s = (N * (N - 1) // 2) % mod
    else:
        s += (i - (N - i))
    base_n = (base_n + s + mod) % mod
base = (base_m * N * N + base_n * M * M) * g2[2] % mod

ans = base * cmb((N * M) - 2, K - 2, mod) % mod

print(ans)
