# -*- coding: utf-8 -*-

import sys

def input(): return sys.stdin.readline().strip()
def list2d(a, b, c): return [[c] * b for i in range(a)]
def list3d(a, b, c, d): return [[[d] * c for j in range(b)] for i in range(a)]
def list4d(a, b, c, d, e): return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)]
def ceil(x, y=1): return int(-(-x // y))
def INT(): return int(input())
def MAP(): return map(int, input().split())
def LIST(N=None): return list(MAP()) if N is None else [INT() for i in range(N)]
def Yes(): print('Yes')
def No(): print('No')
def YES(): print('YES')
def NO(): print('NO')
sys.setrecursionlimit(10 ** 9)
INF = 10 ** 18
MOD = 10 ** 9 + 7

class ModTools:
    """ 階乗たくさん使う時用のテーブル準備 """

    def __init__(self, MAX, MOD):
        """ MAX：階乗に使う数値の最大以上まで作る """
        
        MAX += 1
        self.MAX = MAX
        self.MOD = MOD
        # 階乗テーブル
        factorial = [1] * MAX
        factorial[0] = factorial[1] = 1
        for i in range(2, MAX):
            factorial[i] = factorial[i-1] * i % MOD
        # 階乗の逆元テーブル
        inverse = [1] * MAX
        # powに第三引数入れると冪乗のmod付計算を高速にやってくれる
        inverse[MAX-1] = pow(factorial[MAX-1], MOD-2, MOD)
        for i in range(MAX-2, 0, -1):
            # 最後から戻っていくこのループならMAX回powするより処理が速い
            inverse[i] = inverse[i+1] * (i+1) % MOD
        self.fact = factorial
        self.inv = inverse
    
    def nCr(self, n, r):
        """ 組み合わせの数 (必要な階乗と逆元のテーブルを事前に作っておく) """

        if n < r: return 0
        # 10C7 = 10C3
        r = min(r, n-r)
        # 分子の計算
        numerator = self.fact[n]
        # 分母の計算
        denominator = self.inv[r] * self.inv[n-r] % self.MOD
        return numerator * denominator % self.MOD

H, W, K = MAP()

N = H * W
mt = ModTools(N, MOD)

ansh = 0
for i in range(1, H+1):
    ansh += i * (H-i) * pow(W, 2, MOD)
    ansh %= MOD
ansh *= mt.nCr(N-2, K-2)
ansh %= MOD

answ = 0
for i in range(1, W+1):
    answ += i * (W-i) * pow(H, 2, MOD)
    answ %= MOD
answ *= mt.nCr(N-2, K-2)
answ %= MOD

print((ansh + answ) % MOD) import sys sys def input(): return sys.stdin.readline().strip() input [c] * b for i in range(a) for i in range(a) i range(a) range a for i in range(a) [c] * b [c] c b def list2d(a, b, c): return [[c] * b for i in range(a)] list2d a a b b c c [[d] * c for j in range(b)] for i in range(a) for i in range(a) i range(a) range a for i in range(a) [[d] * c for j in range(b)] def list3d(a, b, c, d): return [[[d] * c for j in range(b)] for i in range(a)] list3d a a b b c c d d [[[e] * d for j in range(c)] for j in range(b)] for i in range(a) for i in range(a) i range(a) range a for i in range(a) [[[e] * d for j in range(c)] for j in range(b)] def list4d(a, b, c, d, e): return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)] list4d a a b b c c d d e e def ceil(x, y=1): return int(-(-x // y)) ceil x x y=1 y 1 def INT(): return int(input()) INT def MAP(): return map(int, input().split()) MAP INT() for i in range(N) for i in range(N) i range(N) range N for i in range(N) INT() INT def LIST(N=None): return list(MAP()) if N is None else [INT() for i in range(N)] LIST N=None N None def Yes(): print('Yes') Yes def No(): print('No') No def YES(): print('YES') YES def NO(): print('NO') NO sys.setrecursionlimit(10 ** 9) sys.setrecursionlimit sys setrecursionlimit 10 ** 9 10 9 INF = 10 ** 18 INF 10 ** 18 10 18 MOD = 10 ** 9 + 7 MOD 10 ** 9 + 7 10 ** 9 10 9 7 class ModTools:
    """ 階乗たくさん使う時用のテーブル準備 """

    def __init__(self, MAX, MOD):
        """ MAX：階乗に使う数値の最大以上まで作る """
        
        MAX += 1
        self.MAX = MAX
        self.MOD = MOD
        # 階乗テーブル
        factorial = [1] * MAX
        factorial[0] = factorial[1] = 1
        for i in range(2, MAX):
            factorial[i] = factorial[i-1] * i % MOD
        # 階乗の逆元テーブル
        inverse = [1] * MAX
        # powに第三引数入れると冪乗のmod付計算を高速にやってくれる
        inverse[MAX-1] = pow(factorial[MAX-1], MOD-2, MOD)
        for i in range(MAX-2, 0, -1):
            # 最後から戻っていくこのループならMAX回powするより処理が速い
            inverse[i] = inverse[i+1] * (i+1) % MOD
        self.fact = factorial
        self.inv = inverse
    
    def nCr(self, n, r):
        """ 組み合わせの数 (必要な階乗と逆元のテーブルを事前に作っておく) """

        if n < r: return 0
        # 10C7 = 10C3
        r = min(r, n-r)
        # 分子の計算
        numerator = self.fact[n]
        # 分母の計算
        denominator = self.inv[r] * self.inv[n-r] % self.MOD
        return numerator * denominator % self.MOD ModTools """ 階乗たくさん使う時用のテーブル準備 """ def __init__(self, MAX, MOD):
        """ MAX：階乗に使う数値の最大以上まで作る """
        
        MAX += 1
        self.MAX = MAX
        self.MOD = MOD
        # 階乗テーブル
        factorial = [1] * MAX
        factorial[0] = factorial[1] = 1
        for i in range(2, MAX):
            factorial[i] = factorial[i-1] * i % MOD
        # 階乗の逆元テーブル
        inverse = [1] * MAX
        # powに第三引数入れると冪乗のmod付計算を高速にやってくれる
        inverse[MAX-1] = pow(factorial[MAX-1], MOD-2, MOD)
        for i in range(MAX-2, 0, -1):
            # 最後から戻っていくこのループならMAX回powするより処理が速い
            inverse[i] = inverse[i+1] * (i+1) % MOD
        self.fact = factorial
        self.inv = inverse
    
     __init__ """ MAX：階乗に使う数値の最大以上まで作る """ MAX += 1 MAX 1 self.MAX = MAX self.MAX self MAX MAX self.MOD = MOD self.MOD self MOD MOD factorial = [1] * MAX factorial [1] * MAX [1] 1 MAX factorial[0] = factorial[1] = 1 factorial[0] factorial 0 1 = factorial[1] = 1 factorial[1] factorial 1 1 for i in range(2, MAX):
            factorial[i] = factorial[i-1] * i % MOD
        # 階乗の逆元テーブル
         i range(2, MAX) range 2 MAX factorial[i] = factorial[i-1] * i % MOD factorial[i] factorial i factorial[i-1] * i % MOD factorial[i-1] * i factorial[i-1] factorial i-1 i 1 i MOD inverse = [1] * MAX inverse [1] * MAX [1] 1 MAX inverse[MAX-1] = pow(factorial[MAX-1], MOD-2, MOD) inverse[MAX-1] inverse MAX-1 MAX 1 pow(factorial[MAX-1], MOD-2, MOD) pow factorial[MAX-1] factorial MAX-1 MAX 1 MOD-2 MOD 2 MOD for i in range(MAX-2, 0, -1):
            # 最後から戻っていくこのループならMAX回powするより処理が速い
            inverse[i] = inverse[i+1] * (i+1) % MOD
         i range(MAX-2, 0, -1) range MAX-2 MAX 2 0 -1 inverse[i] = inverse[i+1] * (i+1) % MOD inverse[i] inverse i inverse[i+1] * (i+1) % MOD inverse[i+1] * (i+1) inverse[i+1] inverse i+1 i 1 i+1 i 1 MOD self.fact = factorial self.fact self fact factorial self.inv = inverse self.inv self inv inverse self self MAX MAX MOD MOD def nCr(self, n, r):
        """ 組み合わせの数 (必要な階乗と逆元のテーブルを事前に作っておく) """

        if n < r: return 0
        # 10C7 = 10C3
        r = min(r, n-r)
        # 分子の計算
        numerator = self.fact[n]
        # 分母の計算
        denominator = self.inv[r] * self.inv[n-r] % self.MOD
        return numerator * denominator % self.MOD nCr """ 組み合わせの数 (必要な階乗と逆元のテーブルを事前に作っておく) """ if n < r: return 0
        # 10C7 = 10C3
         n < r n r r = min(r, n-r) r min(r, n-r) min r n-r n r numerator = self.fact[n] numerator self.fact[n] self.fact self fact n denominator = self.inv[r] * self.inv[n-r] % self.MOD denominator self.inv[r] * self.inv[n-r] % self.MOD self.inv[r] * self.inv[n-r] self.inv[r] self.inv self inv r self.inv[n-r] self.inv self inv n-r n r self.MOD self MOD return numerator * denominator % self.MOD numerator * denominator % self.MOD numerator * denominator numerator denominator self.MOD self MOD self self n n r r H, W, K = MAP() H MAP() MAP W K N = H * W N H * W H W mt = ModTools(N, MOD) mt ModTools(N, MOD) ModTools N MOD ansh = 0 ansh 0 for i in range(1, H+1):
    ansh += i * (H-i) * pow(W, 2, MOD)
    ansh %= MOD i range(1, H+1) range 1 H+1 H 1 ansh += i * (H-i) * pow(W, 2, MOD) ansh i * (H-i) * pow(W, 2, MOD) i * (H-i) i H-i H i pow(W, 2, MOD) pow W 2 MOD ansh %= MOD ansh MOD ansh *= mt.nCr(N-2, K-2) ansh mt.nCr(N-2, K-2) mt.nCr mt nCr N-2 N 2 K-2 K 2 ansh %= MOD ansh MOD answ = 0 answ 0 for i in range(1, W+1):
    answ += i * (W-i) * pow(H, 2, MOD)
    answ %= MOD i range(1, W+1) range 1 W+1 W 1 answ += i * (W-i) * pow(H, 2, MOD) answ i * (W-i) * pow(H, 2, MOD) i * (W-i) i W-i W i pow(H, 2, MOD) pow H 2 MOD answ %= MOD answ MOD answ *= mt.nCr(N-2, K-2) answ mt.nCr(N-2, K-2) mt.nCr mt nCr N-2 N 2 K-2 K 2 answ %= MOD answ MOD print((ansh + answ) % MOD) print (ansh + answ) % MOD ansh + answ ansh answ MOD answ %= MOD MOD answ H, W, K = MAP() MAP() H ansh %= MOD MOD ansh answ %= MOD MOD answ def Yes(): print('Yes') def Yes(): print('Yes') Yes answ += i * (W-i) * pow(H, 2, MOD) i * (W-i) * pow(H, 2, MOD) answ def list4d(a, b, c, d, e): return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)] def list4d(a, b, c, d, e): return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)] list4d ansh = 0 0 ansh def list3d(a, b, c, d): return [[[d] * c for j in range(b)] for i in range(a)] def list3d(a, b, c, d): return [[[d] * c for j in range(b)] for i in range(a)] list3d ansh %= MOD MOD ansh ansh += i * (H-i) * pow(W, 2, MOD) i * (H-i) * pow(W, 2, MOD) ansh def list2d(a, b, c): return [[c] * b for i in range(a)] def list2d(a, b, c): return [[c] * b for i in range(a)] list2d W, K = MAP() MAP() W class ModTools:
    """ 階乗たくさん使う時用のテーブル準備 """

    def __init__(self, MAX, MOD):
        """ MAX：階乗に使う数値の最大以上まで作る """
        
        MAX += 1
        self.MAX = MAX
        self.MOD = MOD
        # 階乗テーブル
        factorial = [1] * MAX
        factorial[0] = factorial[1] = 1
        for i in range(2, MAX):
            factorial[i] = factorial[i-1] * i % MOD
        # 階乗の逆元テーブル
        inverse = [1] * MAX
        # powに第三引数入れると冪乗のmod付計算を高速にやってくれる
        inverse[MAX-1] = pow(factorial[MAX-1], MOD-2, MOD)
        for i in range(MAX-2, 0, -1):
            # 最後から戻っていくこのループならMAX回powするより処理が速い
            inverse[i] = inverse[i+1] * (i+1) % MOD
        self.fact = factorial
        self.inv = inverse
    
    def nCr(self, n, r):
        """ 組み合わせの数 (必要な階乗と逆元のテーブルを事前に作っておく) """

        if n < r: return 0
        # 10C7 = 10C3
        r = min(r, n-r)
        # 分子の計算
        numerator = self.fact[n]
        # 分母の計算
        denominator = self.inv[r] * self.inv[n-r] % self.MOD
        return numerator * denominator % self.MOD class ModTools:
    """ 階乗たくさん使う時用のテーブル準備 """

    def __init__(self, MAX, MOD):
        """ MAX：階乗に使う数値の最大以上まで作る """
        
        MAX += 1
        self.MAX = MAX
        self.MOD = MOD
        # 階乗テーブル
        factorial = [1] * MAX
        factorial[0] = factorial[1] = 1
        for i in range(2, MAX):
            factorial[i] = factorial[i-1] * i % MOD
        # 階乗の逆元テーブル
        inverse = [1] * MAX
        # powに第三引数入れると冪乗のmod付計算を高速にやってくれる
        inverse[MAX-1] = pow(factorial[MAX-1], MOD-2, MOD)
        for i in range(MAX-2, 0, -1):
            # 最後から戻っていくこのループならMAX回powするより処理が速い
            inverse[i] = inverse[i+1] * (i+1) % MOD
        self.fact = factorial
        self.inv = inverse
    
    def nCr(self, n, r):
        """ 組み合わせの数 (必要な階乗と逆元のテーブルを事前に作っておく) """

        if n < r: return 0
        # 10C7 = 10C3
        r = min(r, n-r)
        # 分子の計算
        numerator = self.fact[n]
        # 分母の計算
        denominator = self.inv[r] * self.inv[n-r] % self.MOD
        return numerator * denominator % self.MOD ModTools def ceil(x, y=1): return int(-(-x // y)) def ceil(x, y=1): return int(-(-x // y)) ceil answ = 0 0 answ ansh *= mt.nCr(N-2, K-2) mt.nCr(N-2, K-2) ansh N = H * W H * W N def input(): return sys.stdin.readline().strip() def input(): return sys.stdin.readline().strip() input def LIST(N=None): return list(MAP()) if N is None else [INT() for i in range(N)] def LIST(N=None): return list(MAP()) if N is None else [INT() for i in range(N)] LIST def INT(): return int(input()) def INT(): return int(input()) INT K = MAP() MAP() K def YES(): print('YES') def YES(): print('YES') YES answ *= mt.nCr(N-2, K-2) mt.nCr(N-2, K-2) answ mt = ModTools(N, MOD) ModTools(N, MOD) mt def MAP(): return map(int, input().split()) def MAP(): return map(int, input().split()) MAP def NO(): print('NO') def NO(): print('NO') NO MOD = 10 ** 9 + 7 10 ** 9 + 7 MOD def No(): print('No') def No(): print('No') No INF = 10 ** 18 10 ** 18 INF
# -*- coding: utf-8 -*-

import sys

def input(): return sys.stdin.readline().strip()
def list2d(a, b, c): return [[c] * b for i in range(a)]
def list3d(a, b, c, d): return [[[d] * c for j in range(b)] for i in range(a)]
def list4d(a, b, c, d, e): return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)]
def ceil(x, y=1): return int(-(-x // y))
def INT(): return int(input())
def MAP(): return map(int, input().split())
def LIST(N=None): return list(MAP()) if N is None else [INT() for i in range(N)]
def Yes(): print('Yes')
def No(): print('No')
def YES(): print('YES')
def NO(): print('NO')
sys.setrecursionlimit(10 ** 9)
INF = 10 ** 18
MOD = 10 ** 9 + 7

class ModTools:
    """ 階乗たくさん使う時用のテーブル準備 """

    def __init__(self, MAX, MOD):
        """ MAX：階乗に使う数値の最大以上まで作る """
        
        MAX += 1
        self.MAX = MAX
        self.MOD = MOD
        # 階乗テーブル
        factorial = [1] * MAX
        factorial[0] = factorial[1] = 1
        for i in range(2, MAX):
            factorial[i] = factorial[i-1] * i % MOD
        # 階乗の逆元テーブル
        inverse = [1] * MAX
        # powに第三引数入れると冪乗のmod付計算を高速にやってくれる
        inverse[MAX-1] = pow(factorial[MAX-1], MOD-2, MOD)
        for i in range(MAX-2, 0, -1):
            # 最後から戻っていくこのループならMAX回powするより処理が速い
            inverse[i] = inverse[i+1] * (i+1) % MOD
        self.fact = factorial
        self.inv = inverse
    
    def nCr(self, n, r):
        """ 組み合わせの数 (必要な階乗と逆元のテーブルを事前に作っておく) """

        if n < r: return 0
        # 10C7 = 10C3
        r = min(r, n-r)
        # 分子の計算
        numerator = self.fact[n]
        # 分母の計算
        denominator = self.inv[r] * self.inv[n-r] % self.MOD
        return numerator * denominator % self.MOD

H, W, K = MAP()

N = H * W
mt = ModTools(N, MOD)

ansh = 0
for i in range(1, H+1):
    ansh += i * (H-i) * pow(W, 2, MOD)
    ansh %= MOD
ansh *= mt.nCr(N-2, K-2)
ansh %= MOD

answ = 0
for i in range(1, W+1):
    answ += i * (W-i) * pow(H, 2, MOD)
    answ %= MOD
answ *= mt.nCr(N-2, K-2)
answ %= MOD

print((ansh + answ) % MOD)
