# -*- coding: utf-8 -*-
"""
Created on Sat May 25 21:24:29 2019

@author: Yamazaki Kenichi
"""

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

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

g1 = [1, 1] # 元テーブル
g2 = [1, 1] # 逆元テーブル
inv = [0, 1] # 逆元テーブル計算用テーブル

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

def a(N,M):
    return N*(N+1)//2*(M+1) + M*(M+1)//2*(N+1)
def b(N):
    return N*(N+1)//2

ans = 0
for i in range(N):
    for j in range(M):
        ans += a(i,j) + a(N-i-1,j) + a(i,M-j-1) + a(N-i-1,M-j-1)
        ans -= b(i) + b(j) + b(N-i-1) + b(M-j-1)
        ans %= mod
#        print(i,j,a(i,j),a(N-i-1,j),a(i,M-j-1),a(N-i-1,M-j-1),b(i),b(j),ans)
ans *= g2[2]

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

print(ans) """
Created on Sat May 25 21:24:29 2019

@author: Yamazaki Kenichi
""" 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 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 g1 = [1, 1] g1 [1, 1] 1 1 g2 = [1, 1] g2 [1, 1] 1 1 inv = [0, 1] inv [0, 1] 0 1 for i in range(2, N*M+1):
    g1.append((g1[-1] * i) % mod)
    inv.append((-inv[mod % i] * (mod//i)) % mod)
    g2.append((g2[-1] * inv[-1]) % mod) i range(2, N*M+1) range 2 N*M+1 N*M N M 1 g1.append((g1[-1] * i) % mod) g1.append g1 append (g1[-1] * i) % mod g1[-1] * i g1[-1] g1 -1 i mod inv.append((-inv[mod % i] * (mod//i)) % mod) inv.append inv append (-inv[mod % i] * (mod//i)) % mod -inv[mod % i] * (mod//i) -inv[mod % i] inv[mod % i] inv mod % i mod i mod//i mod i mod g2.append((g2[-1] * inv[-1]) % mod) g2.append g2 append (g2[-1] * inv[-1]) % mod g2[-1] * inv[-1] g2[-1] g2 -1 inv[-1] inv -1 mod def a(N,M):
    return N*(N+1)//2*(M+1) + M*(M+1)//2*(N+1) a return N*(N+1)//2*(M+1) + M*(M+1)//2*(N+1) N*(N+1)//2*(M+1) + M*(M+1)//2*(N+1) N*(N+1)//2*(M+1) N*(N+1)//2 N*(N+1) N N+1 N 1 2 M+1 M 1 M*(M+1)//2*(N+1) M*(M+1)//2 M*(M+1) M M+1 M 1 2 N+1 N 1 N N M M def b(N):
    return N*(N+1)//2 b return N*(N+1)//2 N*(N+1)//2 N*(N+1) N N+1 N 1 2 N N ans = 0 ans 0 for i in range(N):
    for j in range(M):
        ans += a(i,j) + a(N-i-1,j) + a(i,M-j-1) + a(N-i-1,M-j-1)
        ans -= b(i) + b(j) + b(N-i-1) + b(M-j-1)
        ans %= mod
#        print(i,j,a(i,j),a(N-i-1,j),a(i,M-j-1),a(N-i-1,M-j-1),b(i),b(j),ans) i range(N) range N for j in range(M):
        ans += a(i,j) + a(N-i-1,j) + a(i,M-j-1) + a(N-i-1,M-j-1)
        ans -= b(i) + b(j) + b(N-i-1) + b(M-j-1)
        ans %= mod
#        print(i,j,a(i,j),a(N-i-1,j),a(i,M-j-1),a(N-i-1,M-j-1),b(i),b(j),ans) j range(M) range M ans += a(i,j) + a(N-i-1,j) + a(i,M-j-1) + a(N-i-1,M-j-1) ans a(i,j) + a(N-i-1,j) + a(i,M-j-1) + a(N-i-1,M-j-1) a(i,j) + a(N-i-1,j) + a(i,M-j-1) a(i,j) + a(N-i-1,j) a(i,j) a i j a(N-i-1,j) a N-i-1 N-i N i 1 j a(i,M-j-1) a i M-j-1 M-j M j 1 a(N-i-1,M-j-1) a N-i-1 N-i N i 1 M-j-1 M-j M j 1 ans -= b(i) + b(j) + b(N-i-1) + b(M-j-1) ans b(i) + b(j) + b(N-i-1) + b(M-j-1) b(i) + b(j) + b(N-i-1) b(i) + b(j) b(i) b i b(j) b j b(N-i-1) b N-i-1 N-i N i 1 b(M-j-1) b M-j-1 M-j M j 1 ans %= mod ans mod ans *= g2[2] ans g2[2] g2 2 ans *= cmb(N*M-2,K-2,mod) ans cmb(N*M-2,K-2,mod) cmb N*M-2 N*M N M 2 K-2 K 2 mod ans %= mod ans mod print(ans) print ans ans *= cmb(N*M-2,K-2,mod) cmb(N*M-2,K-2,mod) ans def b(N):
    return N*(N+1)//2 def b(N):
    return N*(N+1)//2 b ans %= mod mod ans g2 = [1, 1] [1, 1] g2 N, M, K = map(int,input().split()) map(int,input().split()) N ans -= b(i) + b(j) + b(N-i-1) + b(M-j-1) b(i) + b(j) + b(N-i-1) + b(M-j-1) ans inv = [0, 1] [0, 1] inv mod = 10**9+7 10**9+7 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 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 def a(N,M):
    return N*(N+1)//2*(M+1) + M*(M+1)//2*(N+1) def a(N,M):
    return N*(N+1)//2*(M+1) + M*(M+1)//2*(N+1) a g1 = [1, 1] [1, 1] g1 ans *= g2[2] g2[2] ans M, K = map(int,input().split()) map(int,input().split()) M ans = 0 0 ans ans += a(i,j) + a(N-i-1,j) + a(i,M-j-1) + a(N-i-1,M-j-1) a(i,j) + a(N-i-1,j) + a(i,M-j-1) + a(N-i-1,M-j-1) ans ans %= mod mod ans K = map(int,input().split()) map(int,input().split()) K
# -*- coding: utf-8 -*-
"""
Created on Sat May 25 21:24:29 2019

@author: Yamazaki Kenichi
"""

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

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

g1 = [1, 1] # 元テーブル
g2 = [1, 1] # 逆元テーブル
inv = [0, 1] # 逆元テーブル計算用テーブル

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

def a(N,M):
    return N*(N+1)//2*(M+1) + M*(M+1)//2*(N+1)
def b(N):
    return N*(N+1)//2

ans = 0
for i in range(N):
    for j in range(M):
        ans += a(i,j) + a(N-i-1,j) + a(i,M-j-1) + a(N-i-1,M-j-1)
        ans -= b(i) + b(j) + b(N-i-1) + b(M-j-1)
        ans %= mod
#        print(i,j,a(i,j),a(N-i-1,j),a(i,M-j-1),a(N-i-1,M-j-1),b(i),b(j),ans)
ans *= g2[2]

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

print(ans)
