N, M, K = map(int, input().split())
mod = 10**9+7

# comb init
nmax = 2 * 10 ** 5 + 1  # change here
fac = [0] * (nmax + 1)
finv = [0] * (nmax + 1)
inv = [0] * (nmax + 1)
fac[0] = 1
fac[1] = 1
finv[0] = 1
finv[1] = 1
inv[1] = 1
for i in range(2, nmax):
    fac[i] = fac[i - 1] * i % mod
    inv[i] = mod - inv[mod % i] * (mod // i) % mod
    finv[i] = finv[i - 1] * inv[i] % mod


def comb(n, r):
    if n < r:
        return 0
    else:
        return (fac[n] * ((finv[r] * finv[n - r]) % mod)) % mod


def s(k):
    return ((k * (k+1) * (2 * k + 1))%mod * inv[6] + (k * (k+1) * inv[2])%mod)%mod


C = comb(N*M-2, K-2)
print(((C * ((N ** 2 * s(M-1))%mod + (M ** 2 * s(N-1))%mod)%mod)%mod) * inv[2]%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 nmax = 2 * 10 ** 5 + 1 nmax 2 * 10 ** 5 + 1 2 * 10 ** 5 2 10 ** 5 10 5 1 fac = [0] * (nmax + 1) fac [0] * (nmax + 1) [0] 0 nmax + 1 nmax 1 finv = [0] * (nmax + 1) finv [0] * (nmax + 1) [0] 0 nmax + 1 nmax 1 inv = [0] * (nmax + 1) inv [0] * (nmax + 1) [0] 0 nmax + 1 nmax 1 fac[0] = 1 fac[0] fac 0 1 fac[1] = 1 fac[1] fac 1 1 finv[0] = 1 finv[0] finv 0 1 finv[1] = 1 finv[1] finv 1 1 inv[1] = 1 inv[1] inv 1 1 for i in range(2, nmax):
    fac[i] = fac[i - 1] * i % mod
    inv[i] = mod - inv[mod % i] * (mod // i) % mod
    finv[i] = finv[i - 1] * inv[i] % mod i range(2, nmax) range 2 nmax fac[i] = fac[i - 1] * i % mod fac[i] fac i fac[i - 1] * i % mod fac[i - 1] * i fac[i - 1] fac i - 1 i 1 i mod inv[i] = mod - inv[mod % i] * (mod // i) % mod inv[i] inv i mod - inv[mod % i] * (mod // i) % mod mod inv[mod % i] * (mod // i) % mod inv[mod % i] * (mod // i) inv[mod % i] inv mod % i mod i mod // i mod i mod finv[i] = finv[i - 1] * inv[i] % mod finv[i] finv i finv[i - 1] * inv[i] % mod finv[i - 1] * inv[i] finv[i - 1] finv i - 1 i 1 inv[i] inv i mod def comb(n, r):
    if n < r:
        return 0
    else:
        return (fac[n] * ((finv[r] * finv[n - r]) % mod)) % mod comb if n < r:
        return 0
    else:
        return (fac[n] * ((finv[r] * finv[n - r]) % mod)) % mod n < r n r return 0 0 return (fac[n] * ((finv[r] * finv[n - r]) % mod)) % mod (fac[n] * ((finv[r] * finv[n - r]) % mod)) % mod fac[n] * ((finv[r] * finv[n - r]) % mod) fac[n] fac n (finv[r] * finv[n - r]) % mod finv[r] * finv[n - r] finv[r] finv r finv[n - r] finv n - r n r mod mod n n r r def s(k):
    return ((k * (k+1) * (2 * k + 1))%mod * inv[6] + (k * (k+1) * inv[2])%mod)%mod s return ((k * (k+1) * (2 * k + 1))%mod * inv[6] + (k * (k+1) * inv[2])%mod)%mod ((k * (k+1) * (2 * k + 1))%mod * inv[6] + (k * (k+1) * inv[2])%mod)%mod (k * (k+1) * (2 * k + 1))%mod * inv[6] + (k * (k+1) * inv[2])%mod (k * (k+1) * (2 * k + 1))%mod * inv[6] (k * (k+1) * (2 * k + 1))%mod k * (k+1) * (2 * k + 1) k * (k+1) k k+1 k 1 2 * k + 1 2 * k 2 k 1 mod inv[6] inv 6 (k * (k+1) * inv[2])%mod k * (k+1) * inv[2] k * (k+1) k k+1 k 1 inv[2] inv 2 mod mod k k C = comb(N*M-2, K-2) C comb(N*M-2, K-2) comb N*M-2 N*M N M 2 K-2 K 2 print(((C * ((N ** 2 * s(M-1))%mod + (M ** 2 * s(N-1))%mod)%mod)%mod) * inv[2]%mod) print ((C * ((N ** 2 * s(M-1))%mod + (M ** 2 * s(N-1))%mod)%mod)%mod) * inv[2]%mod ((C * ((N ** 2 * s(M-1))%mod + (M ** 2 * s(N-1))%mod)%mod)%mod) * inv[2] (C * ((N ** 2 * s(M-1))%mod + (M ** 2 * s(N-1))%mod)%mod)%mod C * ((N ** 2 * s(M-1))%mod + (M ** 2 * s(N-1))%mod)%mod C * ((N ** 2 * s(M-1))%mod + (M ** 2 * s(N-1))%mod) C (N ** 2 * s(M-1))%mod + (M ** 2 * s(N-1))%mod (N ** 2 * s(M-1))%mod N ** 2 * s(M-1) N ** 2 N 2 s(M-1) s M-1 M 1 mod (M ** 2 * s(N-1))%mod M ** 2 * s(N-1) M ** 2 M 2 s(N-1) s N-1 N 1 mod mod mod inv[2] inv 2 mod fac = [0] * (nmax + 1) [0] * (nmax + 1) fac def comb(n, r):
    if n < r:
        return 0
    else:
        return (fac[n] * ((finv[r] * finv[n - r]) % mod)) % mod def comb(n, r):
    if n < r:
        return 0
    else:
        return (fac[n] * ((finv[r] * finv[n - r]) % mod)) % mod comb N, M, K = map(int, input().split()) map(int, input().split()) N finv = [0] * (nmax + 1) [0] * (nmax + 1) finv def s(k):
    return ((k * (k+1) * (2 * k + 1))%mod * inv[6] + (k * (k+1) * inv[2])%mod)%mod def s(k):
    return ((k * (k+1) * (2 * k + 1))%mod * inv[6] + (k * (k+1) * inv[2])%mod)%mod s C = comb(N*M-2, K-2) comb(N*M-2, K-2) C K = map(int, input().split()) map(int, input().split()) K nmax = 2 * 10 ** 5 + 1 2 * 10 ** 5 + 1 nmax mod = 10**9+7 10**9+7 mod inv = [0] * (nmax + 1) [0] * (nmax + 1) inv M, K = map(int, input().split()) map(int, input().split()) M
N, M, K = map(int, input().split())
mod = 10**9+7

# comb init
nmax = 2 * 10 ** 5 + 1  # change here
fac = [0] * (nmax + 1)
finv = [0] * (nmax + 1)
inv = [0] * (nmax + 1)
fac[0] = 1
fac[1] = 1
finv[0] = 1
finv[1] = 1
inv[1] = 1
for i in range(2, nmax):
    fac[i] = fac[i - 1] * i % mod
    inv[i] = mod - inv[mod % i] * (mod // i) % mod
    finv[i] = finv[i - 1] * inv[i] % mod


def comb(n, r):
    if n < r:
        return 0
    else:
        return (fac[n] * ((finv[r] * finv[n - r]) % mod)) % mod


def s(k):
    return ((k * (k+1) * (2 * k + 1))%mod * inv[6] + (k * (k+1) * inv[2])%mod)%mod


C = comb(N*M-2, K-2)
print(((C * ((N ** 2 * s(M-1))%mod + (M ** 2 * s(N-1))%mod)%mod)%mod) * inv[2]%mod)
