import math, string, itertools, fractions, heapq, collections, re, array, bisect, copy, functools, random
import sys
from collections import deque, defaultdict, Counter; from heapq import heappush, heappop
from itertools import permutations, combinations, product, accumulate, groupby
from bisect import bisect_left, bisect_right, insort_left, insort_right
from operator import itemgetter as ig
sys.setrecursionlimit(10 ** 7)
inf = 10 ** 20; INF = float("INF"); ans = 0; tmp = 0; ansli = []; tmpli = []; candili = []
eps = 1.0 / 10 ** 10; mod = 10 ** 9 + 7
dd = [(-1, 0), (0, 1), (1, 0), (0, -1)]; ddn = dd + [(-1, 1), (1, 1), (1, -1), (-1, -1)]; ddn9 = ddn + [(0, 0)]
"""for dx, dy in dd:
        nx = j + dx; ny = i + dy
            if 0 <= nx < w and 0 <= ny < h:"""
def wi(): return list(map(int, sys.stdin.readline().split()))
def wip(): return [int(x) - 1 for x in sys.stdin.readline().split()]#WideIntPoint
def ws(): return sys.stdin.readline().split()
def i(): return int(sys.stdin.readline())
def s(): return input()
def hi(n): return [i() for _ in range(n)]
def hs(n): return [s() for _ in range(n)]#HeightString
def mi(n): return [wi() for _ in range(n)]#MatrixInt
def mip(n): return [wip() for _ in range(n)]
def ms(n): return [ws() for _ in range(n)]

n, m, k = wi()

for i in range(n):
    ans += m ** 2 * i * (n - i)
    ans = ans % mod

for j in range(m):
    ans += n ** 2 * j * (m - j)
    ans = ans % mod

MAX_N = 3 * 10 ** 5 + 100
factorial = [1] * MAX_N
#事前に階上テーブルを用意
def calc_factorial():
    for i in range(1, MAX_N):
        factorial[i] = i * factorial[i - 1] % mod

def comb(n, k):
    a = factorial[n] % mod
    b = (factorial[k] * factorial[n - k]) % mod
    b_ = pow(b, mod - 2, mod)
    return (a * b_) % mod


# 階乗を用意
calc_factorial()

ans *= comb(n * m - 2, k - 2)
print(ans % mod) import math, string, itertools, fractions, heapq, collections, re, array, bisect, copy, functools, random math string itertools fractions heapq collections re array bisect copy functools random import sys sys from collections import deque, defaultdict, Counter from heapq import heappush, heappop from itertools import permutations, combinations, product, accumulate, groupby from bisect import bisect_left, bisect_right, insort_left, insort_right from operator import itemgetter as ig sys.setrecursionlimit(10 ** 7) sys.setrecursionlimit sys setrecursionlimit 10 ** 7 10 7 inf = 10 ** 20 inf 10 ** 20 10 20 INF = float("INF") INF float("INF") float "INF" ans = 0 ans 0 tmp = 0 tmp 0 ansli = [] ansli [] tmpli = [] tmpli [] candili = [] candili [] eps = 1.0 / 10 ** 10 eps 1.0 / 10 ** 10 1.0 10 ** 10 10 10 mod = 10 ** 9 + 7 mod 10 ** 9 + 7 10 ** 9 10 9 7 dd = [(-1, 0), (0, 1), (1, 0), (0, -1)] dd [(-1, 0), (0, 1), (1, 0), (0, -1)] (-1, 0) -1 0 (0, 1) 0 1 (1, 0) 1 0 (0, -1) 0 -1 ddn = dd + [(-1, 1), (1, 1), (1, -1), (-1, -1)] ddn dd + [(-1, 1), (1, 1), (1, -1), (-1, -1)] dd [(-1, 1), (1, 1), (1, -1), (-1, -1)] (-1, 1) -1 1 (1, 1) 1 1 (1, -1) 1 -1 (-1, -1) -1 -1 ddn9 = ddn + [(0, 0)] ddn9 ddn + [(0, 0)] ddn [(0, 0)] (0, 0) 0 0 """for dx, dy in dd:
        nx = j + dx; ny = i + dy
            if 0 <= nx < w and 0 <= ny < h:""" def wi(): return list(map(int, sys.stdin.readline().split())) wi int(x) - 1 for x in sys.stdin.readline().split() for x in sys.stdin.readline().split() x sys.stdin.readline().split() sys.stdin.readline().split sys.stdin.readline() sys.stdin.readline sys.stdin sys stdin readline split for x in sys.stdin.readline().split() int(x) - 1 int(x) int x 1 def wip(): return [int(x) - 1 for x in sys.stdin.readline().split()]#WideIntPoint wip def ws(): return sys.stdin.readline().split() ws def i(): return int(sys.stdin.readline()) i def s(): return input() s i() for _ in range(n) for _ in range(n) _ range(n) range n for _ in range(n) i() i def hi(n): return [i() for _ in range(n)] hi n n s() for _ in range(n) for _ in range(n) _ range(n) range n for _ in range(n) s() s def hs(n): return [s() for _ in range(n)]#HeightString hs n n wi() for _ in range(n) for _ in range(n) _ range(n) range n for _ in range(n) wi() wi def mi(n): return [wi() for _ in range(n)]#MatrixInt mi n n wip() for _ in range(n) for _ in range(n) _ range(n) range n for _ in range(n) wip() wip def mip(n): return [wip() for _ in range(n)] mip n n ws() for _ in range(n) for _ in range(n) _ range(n) range n for _ in range(n) ws() ws def ms(n): return [ws() for _ in range(n)] ms n n n, m, k = wi() n wi() wi m k for i in range(n):
    ans += m ** 2 * i * (n - i)
    ans = ans % mod i range(n) range n ans += m ** 2 * i * (n - i) ans m ** 2 * i * (n - i) m ** 2 * i m ** 2 m 2 i n - i n i ans = ans % mod ans ans % mod ans mod for j in range(m):
    ans += n ** 2 * j * (m - j)
    ans = ans % mod j range(m) range m ans += n ** 2 * j * (m - j) ans n ** 2 * j * (m - j) n ** 2 * j n ** 2 n 2 j m - j m j ans = ans % mod ans ans % mod ans mod MAX_N = 3 * 10 ** 5 + 100 MAX_N 3 * 10 ** 5 + 100 3 * 10 ** 5 3 10 ** 5 10 5 100 factorial = [1] * MAX_N factorial [1] * MAX_N [1] 1 MAX_N def calc_factorial():
    for i in range(1, MAX_N):
        factorial[i] = i * factorial[i - 1] % mod calc_factorial for i in range(1, MAX_N):
        factorial[i] = i * factorial[i - 1] % mod i range(1, MAX_N) range 1 MAX_N factorial[i] = i * factorial[i - 1] % mod factorial[i] factorial i i * factorial[i - 1] % mod i * factorial[i - 1] i factorial[i - 1] factorial i - 1 i 1 mod def comb(n, k):
    a = factorial[n] % mod
    b = (factorial[k] * factorial[n - k]) % mod
    b_ = pow(b, mod - 2, mod)
    return (a * b_) % mod


# 階乗を用意 comb a = factorial[n] % mod a factorial[n] % mod factorial[n] factorial n mod b = (factorial[k] * factorial[n - k]) % mod b (factorial[k] * factorial[n - k]) % mod factorial[k] * factorial[n - k] factorial[k] factorial k factorial[n - k] factorial n - k n k mod b_ = pow(b, mod - 2, mod) b_ pow(b, mod - 2, mod) pow b mod - 2 mod 2 mod return (a * b_) % mod (a * b_) % mod a * b_ a b_ mod n n k k calc_factorial() calc_factorial ans *= comb(n * m - 2, k - 2) ans comb(n * m - 2, k - 2) comb n * m - 2 n * m n m 2 k - 2 k 2 print(ans % mod) print ans % mod ans mod ans = 0 0 ans candili = [] [] candili def wip(): return [int(x) - 1 for x in sys.stdin.readline().split()]#WideIntPoint def wip(): return [int(x) - 1 for x in sys.stdin.readline().split()]#WideIntPoint wip def hs(n): return [s() for _ in range(n)]#HeightString def hs(n): return [s() for _ in range(n)]#HeightString hs def s(): return input() def s(): return input() s ansli = [] [] ansli ddn = dd + [(-1, 1), (1, 1), (1, -1), (-1, -1)] dd + [(-1, 1), (1, 1), (1, -1), (-1, -1)] ddn def mi(n): return [wi() for _ in range(n)]#MatrixInt def mi(n): return [wi() for _ in range(n)]#MatrixInt mi mod = 10 ** 9 + 7 10 ** 9 + 7 mod inf = 10 ** 20 10 ** 20 inf ans = ans % mod ans % mod ans ans += n ** 2 * j * (m - j) n ** 2 * j * (m - j) ans def calc_factorial():
    for i in range(1, MAX_N):
        factorial[i] = i * factorial[i - 1] % mod def calc_factorial():
    for i in range(1, MAX_N):
        factorial[i] = i * factorial[i - 1] % mod calc_factorial ans += m ** 2 * i * (n - i) m ** 2 * i * (n - i) ans INF = float("INF") float("INF") INF def ms(n): return [ws() for _ in range(n)] def ms(n): return [ws() for _ in range(n)] ms ans *= comb(n * m - 2, k - 2) comb(n * m - 2, k - 2) ans def wi(): return list(map(int, sys.stdin.readline().split())) def wi(): return list(map(int, sys.stdin.readline().split())) wi tmpli = [] [] tmpli def i(): return int(sys.stdin.readline()) def i(): return int(sys.stdin.readline()) i MAX_N = 3 * 10 ** 5 + 100 3 * 10 ** 5 + 100 MAX_N n, m, k = wi() wi() n def comb(n, k):
    a = factorial[n] % mod
    b = (factorial[k] * factorial[n - k]) % mod
    b_ = pow(b, mod - 2, mod)
    return (a * b_) % mod


# 階乗を用意 def comb(n, k):
    a = factorial[n] % mod
    b = (factorial[k] * factorial[n - k]) % mod
    b_ = pow(b, mod - 2, mod)
    return (a * b_) % mod


# 階乗を用意 comb k = wi() wi() k def mip(n): return [wip() for _ in range(n)] def mip(n): return [wip() for _ in range(n)] mip eps = 1.0 / 10 ** 10 1.0 / 10 ** 10 eps def hi(n): return [i() for _ in range(n)] def hi(n): return [i() for _ in range(n)] hi ans = ans % mod ans % mod ans dd = [(-1, 0), (0, 1), (1, 0), (0, -1)] [(-1, 0), (0, 1), (1, 0), (0, -1)] dd ddn9 = ddn + [(0, 0)] ddn + [(0, 0)] ddn9 def ws(): return sys.stdin.readline().split() def ws(): return sys.stdin.readline().split() ws tmp = 0 0 tmp m, k = wi() wi() m factorial = [1] * MAX_N [1] * MAX_N factorial
import math, string, itertools, fractions, heapq, collections, re, array, bisect, copy, functools, random
import sys
from collections import deque, defaultdict, Counter; from heapq import heappush, heappop
from itertools import permutations, combinations, product, accumulate, groupby
from bisect import bisect_left, bisect_right, insort_left, insort_right
from operator import itemgetter as ig
sys.setrecursionlimit(10 ** 7)
inf = 10 ** 20; INF = float("INF"); ans = 0; tmp = 0; ansli = []; tmpli = []; candili = []
eps = 1.0 / 10 ** 10; mod = 10 ** 9 + 7
dd = [(-1, 0), (0, 1), (1, 0), (0, -1)]; ddn = dd + [(-1, 1), (1, 1), (1, -1), (-1, -1)]; ddn9 = ddn + [(0, 0)]
"""for dx, dy in dd:
        nx = j + dx; ny = i + dy
            if 0 <= nx < w and 0 <= ny < h:"""
def wi(): return list(map(int, sys.stdin.readline().split()))
def wip(): return [int(x) - 1 for x in sys.stdin.readline().split()]#WideIntPoint
def ws(): return sys.stdin.readline().split()
def i(): return int(sys.stdin.readline())
def s(): return input()
def hi(n): return [i() for _ in range(n)]
def hs(n): return [s() for _ in range(n)]#HeightString
def mi(n): return [wi() for _ in range(n)]#MatrixInt
def mip(n): return [wip() for _ in range(n)]
def ms(n): return [ws() for _ in range(n)]

n, m, k = wi()

for i in range(n):
    ans += m ** 2 * i * (n - i)
    ans = ans % mod

for j in range(m):
    ans += n ** 2 * j * (m - j)
    ans = ans % mod

MAX_N = 3 * 10 ** 5 + 100
factorial = [1] * MAX_N
#事前に階上テーブルを用意
def calc_factorial():
    for i in range(1, MAX_N):
        factorial[i] = i * factorial[i - 1] % mod

def comb(n, k):
    a = factorial[n] % mod
    b = (factorial[k] * factorial[n - k]) % mod
    b_ = pow(b, mod - 2, mod)
    return (a * b_) % mod


# 階乗を用意
calc_factorial()

ans *= comb(n * m - 2, k - 2)
print(ans % mod)