n, m, k = map(int, input().split())
MOD = (10**9) + 7


S = 0

def stick(n):
    return n * (n+1) // 2

def calc(w, h):
    L = w * (w-1) // 2
    R = L + w * (h-1)
    return (L + R) * h // 2

for i in range(n):
    for j in range(m):
        S += calc(i+1, j+1)
        S += calc(i+1, m-j)
        S += calc(n-i, j+1)
        S += calc(n-i, m-j)
        S -= stick(i)
        S -= stick(j)
        S -= stick(n-i-1)
        S -= stick(m-j-1)
        S %= MOD
        
if S % 2 == 0:S //= 2
else: S = (S + MOD) // 2
S %= MOD
if S < 0:S += MOD

def fact(x):
    res = 1
    for i in range(1, x+1):
        res = res * i % MOD
    return res


def rev(x):
    return pow(x, MOD-2, MOD)

def nCk(n, k):
    return fact(n) * rev(fact(k)) % MOD * rev(fact(n-k)) % MOD

print(S * nCk(n*m-2, k-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 S = 0 S 0 def stick(n):
    return n * (n+1) // 2 stick return n * (n+1) // 2 n * (n+1) // 2 n * (n+1) n n+1 n 1 2 n n def calc(w, h):
    L = w * (w-1) // 2
    R = L + w * (h-1)
    return (L + R) * h // 2 calc L = w * (w-1) // 2 L w * (w-1) // 2 w * (w-1) w w-1 w 1 2 R = L + w * (h-1) R L + w * (h-1) L w * (h-1) w h-1 h 1 return (L + R) * h // 2 (L + R) * h // 2 (L + R) * h L + R L R h 2 w w h h for i in range(n):
    for j in range(m):
        S += calc(i+1, j+1)
        S += calc(i+1, m-j)
        S += calc(n-i, j+1)
        S += calc(n-i, m-j)
        S -= stick(i)
        S -= stick(j)
        S -= stick(n-i-1)
        S -= stick(m-j-1)
        S %= MOD
         i range(n) range n for j in range(m):
        S += calc(i+1, j+1)
        S += calc(i+1, m-j)
        S += calc(n-i, j+1)
        S += calc(n-i, m-j)
        S -= stick(i)
        S -= stick(j)
        S -= stick(n-i-1)
        S -= stick(m-j-1)
        S %= MOD
         j range(m) range m S += calc(i+1, j+1) S calc(i+1, j+1) calc i+1 i 1 j+1 j 1 S += calc(i+1, m-j) S calc(i+1, m-j) calc i+1 i 1 m-j m j S += calc(n-i, j+1) S calc(n-i, j+1) calc n-i n i j+1 j 1 S += calc(n-i, m-j) S calc(n-i, m-j) calc n-i n i m-j m j S -= stick(i) S stick(i) stick i S -= stick(j) S stick(j) stick j S -= stick(n-i-1) S stick(n-i-1) stick n-i-1 n-i n i 1 S -= stick(m-j-1) S stick(m-j-1) stick m-j-1 m-j m j 1 S %= MOD S MOD if S % 2 == 0:S //= 2
else: S = (S + MOD) // 2 S % 2 == 0 S % 2 S 2 0 S %= MOD S MOD if S < 0:S += MOD S < 0 S 0 def fact(x):
    res = 1
    for i in range(1, x+1):
        res = res * i % MOD
    return res fact res = 1 res 1 for i in range(1, x+1):
        res = res * i % MOD
     i range(1, x+1) range 1 x+1 x 1 res = res * i % MOD res res * i % MOD res * i res i MOD return res res x x def rev(x):
    return pow(x, MOD-2, MOD) rev return pow(x, MOD-2, MOD) pow(x, MOD-2, MOD) pow x MOD-2 MOD 2 MOD x x def nCk(n, k):
    return fact(n) * rev(fact(k)) % MOD * rev(fact(n-k)) % MOD nCk return fact(n) * rev(fact(k)) % MOD * rev(fact(n-k)) % MOD fact(n) * rev(fact(k)) % MOD * rev(fact(n-k)) % MOD fact(n) * rev(fact(k)) % MOD * rev(fact(n-k)) fact(n) * rev(fact(k)) % MOD fact(n) * rev(fact(k)) fact(n) fact n rev(fact(k)) rev fact(k) fact k MOD rev(fact(n-k)) rev fact(n-k) fact n-k n k MOD n n k k print(S * nCk(n*m-2, k-2) % MOD) print S * nCk(n*m-2, k-2) % MOD S * nCk(n*m-2, k-2) S nCk(n*m-2, k-2) nCk n*m-2 n*m n m 2 k-2 k 2 MOD k = map(int, input().split()) map(int, input().split()) k def fact(x):
    res = 1
    for i in range(1, x+1):
        res = res * i % MOD
    return res def fact(x):
    res = 1
    for i in range(1, x+1):
        res = res * i % MOD
    return res fact S -= stick(j) stick(j) S def calc(w, h):
    L = w * (w-1) // 2
    R = L + w * (h-1)
    return (L + R) * h // 2 def calc(w, h):
    L = w * (w-1) // 2
    R = L + w * (h-1)
    return (L + R) * h // 2 calc S = 0 0 S S += calc(n-i, j+1) calc(n-i, j+1) S MOD = (10**9) + 7 (10**9) + 7 MOD S -= stick(i) stick(i) S def stick(n):
    return n * (n+1) // 2 def stick(n):
    return n * (n+1) // 2 stick S += calc(n-i, m-j) calc(n-i, m-j) S m, k = map(int, input().split()) map(int, input().split()) m S %= MOD MOD S def rev(x):
    return pow(x, MOD-2, MOD) def rev(x):
    return pow(x, MOD-2, MOD) rev S -= stick(m-j-1) stick(m-j-1) S S -= stick(n-i-1) stick(n-i-1) S def nCk(n, k):
    return fact(n) * rev(fact(k)) % MOD * rev(fact(n-k)) % MOD def nCk(n, k):
    return fact(n) * rev(fact(k)) % MOD * rev(fact(n-k)) % MOD nCk S += calc(i+1, m-j) calc(i+1, m-j) S n, m, k = map(int, input().split()) map(int, input().split()) n S %= MOD MOD S S += calc(i+1, j+1) calc(i+1, j+1) S
n, m, k = map(int, input().split())
MOD = (10**9) + 7


S = 0

def stick(n):
    return n * (n+1) // 2

def calc(w, h):
    L = w * (w-1) // 2
    R = L + w * (h-1)
    return (L + R) * h // 2

for i in range(n):
    for j in range(m):
        S += calc(i+1, j+1)
        S += calc(i+1, m-j)
        S += calc(n-i, j+1)
        S += calc(n-i, m-j)
        S -= stick(i)
        S -= stick(j)
        S -= stick(n-i-1)
        S -= stick(m-j-1)
        S %= MOD
        
if S % 2 == 0:S //= 2
else: S = (S + MOD) // 2
S %= MOD
if S < 0:S += MOD

def fact(x):
    res = 1
    for i in range(1, x+1):
        res = res * i % MOD
    return res


def rev(x):
    return pow(x, MOD-2, MOD)

def nCk(n, k):
    return fact(n) * rev(fact(k)) % MOD * rev(fact(n-k)) % MOD

print(S * nCk(n*m-2, k-2) % MOD)