H, W, K = map(int, input().split())
MOD = 10 ** 9 + 7

factorial = [1, 1]  # 元テーブル
inverse = [1, 1]  # 逆元テーブル
inverse_from = [0, 1]  # 逆元テーブル計算用テーブル

for i in range(2, H * W + 1):
    factorial.append((factorial[-1] * i) % MOD)
    inverse_from.append((-inverse_from[MOD % i] * (MOD // i)) % MOD)
    inverse.append((inverse[-1] * inverse_from[-1]) % MOD)


def nCr(n, r):
    if n < r or r < 0:
        return 0
    elif r == 0:
        return 1
    return factorial[n] * inverse[r] * inverse[n - r] % MOD


ans = 0
# Hについて
for d in range(1, H):
    ans += d * (H - d) * pow(W, 2, MOD) * nCr(H * W - 2, K - 2) % MOD
    ans %= MOD
# Wについて
for d in range(1, W):
    ans += d * (W - d) * pow(H, 2, MOD) * nCr(H * W - 2, K - 2) % MOD
    ans %= MOD

print(ans % MOD) H, W, K = map(int, input().split()) H map(int, input().split()) map int input().split() ().split () input split W K MOD = 10 ** 9 + 7 MOD 10 ** 9 + 7 10 ** 9 10 9 7 factorial = [1, 1] factorial [1, 1] 1 1 inverse = [1, 1] inverse [1, 1] 1 1 inverse_from = [0, 1] inverse_from [0, 1] 0 1 for i in range(2, H * W + 1):
    factorial.append((factorial[-1] * i) % MOD)
    inverse_from.append((-inverse_from[MOD % i] * (MOD // i)) % MOD)
    inverse.append((inverse[-1] * inverse_from[-1]) % MOD) i range(2, H * W + 1) range 2 H * W + 1 H * W H W 1 factorial.append((factorial[-1] * i) % MOD) factorial.append factorial append (factorial[-1] * i) % MOD factorial[-1] * i factorial[-1] factorial -1 i MOD inverse_from.append((-inverse_from[MOD % i] * (MOD // i)) % MOD) inverse_from.append inverse_from append (-inverse_from[MOD % i] * (MOD // i)) % MOD -inverse_from[MOD % i] * (MOD // i) -inverse_from[MOD % i] inverse_from[MOD % i] inverse_from MOD % i MOD i MOD // i MOD i MOD inverse.append((inverse[-1] * inverse_from[-1]) % MOD) inverse.append inverse append (inverse[-1] * inverse_from[-1]) % MOD inverse[-1] * inverse_from[-1] inverse[-1] inverse -1 inverse_from[-1] inverse_from -1 MOD def nCr(n, r):
    if n < r or r < 0:
        return 0
    elif r == 0:
        return 1
    return factorial[n] * inverse[r] * inverse[n - r] % MOD nCr if n < r or r < 0:
        return 0
    elif r == 0:
        return 1
     n < r or r < 0 n < r n r r < 0 r 0 return 0 0 elif r == 0:
        return 1
     r == 0 r 0 return 1 1 return factorial[n] * inverse[r] * inverse[n - r] % MOD factorial[n] * inverse[r] * inverse[n - r] % MOD factorial[n] * inverse[r] * inverse[n - r] factorial[n] * inverse[r] factorial[n] factorial n inverse[r] inverse r inverse[n - r] inverse n - r n r MOD n n r r ans = 0 ans 0 for d in range(1, H):
    ans += d * (H - d) * pow(W, 2, MOD) * nCr(H * W - 2, K - 2) % MOD
    ans %= MOD
# Wについて d range(1, H) range 1 H ans += d * (H - d) * pow(W, 2, MOD) * nCr(H * W - 2, K - 2) % MOD ans d * (H - d) * pow(W, 2, MOD) * nCr(H * W - 2, K - 2) % MOD d * (H - d) * pow(W, 2, MOD) * nCr(H * W - 2, K - 2) d * (H - d) * pow(W, 2, MOD) d * (H - d) d H - d H d pow(W, 2, MOD) pow W 2 MOD nCr(H * W - 2, K - 2) nCr H * W - 2 H * W H W 2 K - 2 K 2 MOD ans %= MOD ans MOD for d in range(1, W):
    ans += d * (W - d) * pow(H, 2, MOD) * nCr(H * W - 2, K - 2) % MOD
    ans %= MOD d range(1, W) range 1 W ans += d * (W - d) * pow(H, 2, MOD) * nCr(H * W - 2, K - 2) % MOD ans d * (W - d) * pow(H, 2, MOD) * nCr(H * W - 2, K - 2) % MOD d * (W - d) * pow(H, 2, MOD) * nCr(H * W - 2, K - 2) d * (W - d) * pow(H, 2, MOD) d * (W - d) d W - d W d pow(H, 2, MOD) pow H 2 MOD nCr(H * W - 2, K - 2) nCr H * W - 2 H * W H W 2 K - 2 K 2 MOD ans %= MOD ans MOD print(ans % MOD) print ans % MOD ans MOD inverse_from = [0, 1] [0, 1] inverse_from W, K = map(int, input().split()) map(int, input().split()) W def nCr(n, r):
    if n < r or r < 0:
        return 0
    elif r == 0:
        return 1
    return factorial[n] * inverse[r] * inverse[n - r] % MOD def nCr(n, r):
    if n < r or r < 0:
        return 0
    elif r == 0:
        return 1
    return factorial[n] * inverse[r] * inverse[n - r] % MOD nCr inverse = [1, 1] [1, 1] inverse ans = 0 0 ans ans += d * (W - d) * pow(H, 2, MOD) * nCr(H * W - 2, K - 2) % MOD d * (W - d) * pow(H, 2, MOD) * nCr(H * W - 2, K - 2) % MOD ans K = map(int, input().split()) map(int, input().split()) K ans %= MOD MOD ans ans += d * (H - d) * pow(W, 2, MOD) * nCr(H * W - 2, K - 2) % MOD d * (H - d) * pow(W, 2, MOD) * nCr(H * W - 2, K - 2) % MOD ans ans %= MOD MOD ans MOD = 10 ** 9 + 7 10 ** 9 + 7 MOD factorial = [1, 1] [1, 1] factorial H, W, K = map(int, input().split()) map(int, input().split()) H
H, W, K = map(int, input().split())
MOD = 10 ** 9 + 7

factorial = [1, 1]  # 元テーブル
inverse = [1, 1]  # 逆元テーブル
inverse_from = [0, 1]  # 逆元テーブル計算用テーブル

for i in range(2, H * W + 1):
    factorial.append((factorial[-1] * i) % MOD)
    inverse_from.append((-inverse_from[MOD % i] * (MOD // i)) % MOD)
    inverse.append((inverse[-1] * inverse_from[-1]) % MOD)


def nCr(n, r):
    if n < r or r < 0:
        return 0
    elif r == 0:
        return 1
    return factorial[n] * inverse[r] * inverse[n - r] % MOD


ans = 0
# Hについて
for d in range(1, H):
    ans += d * (H - d) * pow(W, 2, MOD) * nCr(H * W - 2, K - 2) % MOD
    ans %= MOD
# Wについて
for d in range(1, W):
    ans += d * (W - d) * pow(H, 2, MOD) * nCr(H * W - 2, K - 2) % MOD
    ans %= MOD

print(ans % MOD)
