import sys

input = sys.stdin.readline



def I(): return int(eval(input()))

def MI(): return list(map(int, input().split()))

def LI(): return list(map(int, input().split()))



def main():

    mod=10**9+7

    N,M,K=MI()

    #2この組み合わせを全部足して，平均ぽく考える

    

    def sum2(x):

        return ((x*(x+1))//2)%mod

    

    #i,jますにいるときの相手．（i,j）よりも奥にあるやつの全組み合わせの総和

    def calc(i,j):

        temp=0

        temp=sum2(M-j-1)#該当する行

        temp=(temp+((sum2(M-j-1)+sum2(j))*(N-i-1)))%mod#下の行の階差部分，左右方向にあるから

        temp=(temp+sum2(N-i-1)*M)%mod

        return temp

        

    S=0

    for i in range(N):

        for j in range(M):

            S=(S+calc(i,j))%mod

            

    rem=(N*M)-2

    

    def cmb(n, r, mod):

        if (r < 0) or (n < r):

            return 0

        r = min(r, n - r)

        return (fact[n] * factinv[r] * factinv[n-r])%mod



    fact=[1,1]

    factinv=[1,1]

    inv=[0,1]

    

    for i in range(2, rem + 1):

        fact.append((fact[-1] * i) % mod)

        inv.append((-inv[mod % i] * (mod // i)) % mod)

        factinv.append((factinv[-1] * inv[-1]) % mod)  

        

    #print(rem,K-2)

    S=(S*cmb(rem,K-2,mod))%mod

            

    print(S)



main()

import sys

input = sys.stdin.readline



def I(): return int(eval(input()))

def MI(): return list(map(int, input().split()))

def LI(): return list(map(int, input().split()))



def main():

    mod=10**9+7

    """

    まず，xとyを分離する=>xだけを考えるので1行とみなす．

    いっぺんにいくつも考えられないので，コマを2つだけ置いた時を考える．

    2この組み合わせで距離が1=>M-1通り，2=>M-2通り,...,M-1=>1通り

    (以下のように考えてΣしても良いがやや面倒

        (j列目にコマを固定すると，相手との距離はj,j-1,...,1,0,1,2,...,M-j))

    実際にはN列あるので，選び方がN^2

        同じ行・列を選んだ場合は不可能だけど，どうせ距離も0なので関係ない

        

    ある2つの組みに注目した時，それを何回数えるかは，外野の並べ方に依存

    (N*M-2)C(K-2)通り

    """

    N,M,K=MI()

    

    

    def cmb(n, r, mod):

        if (r < 0) or (n < r):

            return 0

        r = min(r, n - r)

        return (fact[n] * factinv[r] * factinv[n-r])%mod



    fact=[1,1]

    factinv=[1,1]

    inv=[0,1]

    

    for i in range(2, N*M+5+ 1):

        fact.append((fact[-1] * i) % mod)

        inv.append((-inv[mod % i] * (mod // i)) % mod)

        factinv.append((factinv[-1] * inv[-1]) % mod)

    

    tempj=0

    for j in range(M):

        tempj+=(M-j)*j

        

    tempi=0

    for i in range(N):

        tempi+=(N-i)*i



        

    ans=(tempj*N*N)%mod

    ans=(ans+tempi*M*M)%mod

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

    

    print(ans)

    



main()

import sys

input = sys.stdin.readline


def I():
    return int(eval(input()))


def MI():
    return list(map(int, input().split()))


def LI():
    return list(map(int, input().split()))


def main():
    mod = 10**9 + 7
    N, M, K = MI()
    # 2この組み合わせを全部足して，平均ぽく考える
    def sum2(x):
        return ((x * (x + 1)) // 2) % mod

    # i,jますにいるときの相手．（i,j）よりも奥にあるやつの全組み合わせの総和
    def calc(i, j):
        temp = 0
        temp = sum2(M - j - 1)  # 該当する行
        temp = (
            temp + ((sum2(M - j - 1) + sum2(j)) * (N - i - 1))
        ) % mod  # 下の行の階差部分，左右方向にあるから
        temp = (temp + sum2(N - i - 1) * M) % mod
        return temp

    S = 0
    for i in range(N):
        for j in range(M):
            S = (S + calc(i, j)) % mod
    rem = (N * M) - 2

    def cmb(n, r, mod):
        if (r < 0) or (n < r):
            return 0
        r = min(r, n - r)
        return (fact[n] * factinv[r] * factinv[n - r]) % mod

    fact = [1, 1]
    factinv = [1, 1]
    inv = [0, 1]
    for i in range(2, rem + 1):
        fact.append((fact[-1] * i) % mod)
        inv.append((-inv[mod % i] * (mod // i)) % mod)
        factinv.append((factinv[-1] * inv[-1]) % mod)
    # print(rem,K-2)
    S = (S * cmb(rem, K - 2, mod)) % mod
    print(S)


main()

import sys

input = sys.stdin.readline


def I():
    return int(eval(input()))


def MI():
    return list(map(int, input().split()))


def LI():
    return list(map(int, input().split()))


def main():
    mod = 10**9 + 7
    """
    まず，xとyを分離する=>xだけを考えるので1行とみなす．
    いっぺんにいくつも考えられないので，コマを2つだけ置いた時を考える．
    2この組み合わせで距離が1=>M-1通り，2=>M-2通り,...,M-1=>1通り
    (以下のように考えてΣしても良いがやや面倒
        (j列目にコマを固定すると，相手との距離はj,j-1,...,1,0,1,2,...,M-j))
    実際にはN列あるので，選び方がN^2
        同じ行・列を選んだ場合は不可能だけど，どうせ距離も0なので関係ない
    ある2つの組みに注目した時，それを何回数えるかは，外野の並べ方に依存
    (N*M-2)C(K-2)通り
    """
    N, M, K = MI()

    def cmb(n, r, mod):
        if (r < 0) or (n < r):
            return 0
        r = min(r, n - r)
        return (fact[n] * factinv[r] * factinv[n - r]) % mod

    fact = [1, 1]
    factinv = [1, 1]
    inv = [0, 1]
    for i in range(2, N * M + 5 + 1):
        fact.append((fact[-1] * i) % mod)
        inv.append((-inv[mod % i] * (mod // i)) % mod)
        factinv.append((factinv[-1] * inv[-1]) % mod)
    tempj = 0
    for j in range(M):
        tempj += (M - j) * j
    tempi = 0
    for i in range(N):
        tempi += (N - i) * i
    ans = (tempj * N * N) % mod
    ans = (ans + tempi * M * M) % mod
    ans = (ans * cmb(N * M - 2, K - 2, mod)) % mod
    print(ans)


main()

+    """ +    まず，xとyを分離する=>xだけを考えるので1行とみなす． +    いっぺんにいくつも考えられないので，コマを2つだけ置いた時を考える． +    2この組み合わせで距離が1=>M-1通り，2=>M-2通り,...,M-1=>1通り +    (以下のように考えてΣしても良いがやや面倒 +        (j列目にコマを固定すると，相手との距離はj,j-1,...,1,0,1,2,...,M-j)) +    実際にはN列あるので，選び方がN^2 +        同じ行・列を選んだ場合は不可能だけど，どうせ距離も0なので関係ない +    ある2つの組みに注目した時，それを何回数えるかは，外野の並べ方に依存 +    (N*M-2)C(K-2)通り +    """ -    # 2この組み合わせを全部足して，平均ぽく考える -    def sum2(x): -        return ((x * (x + 1)) // 2) % mod - -    # i,jますにいるときの相手．（i,j）よりも奥にあるやつの全組み合わせの総和 -    def calc(i, j): -        temp = 0 -        temp = sum2(M - j - 1)  # 該当する行 -        temp = ( -            temp + ((sum2(M - j - 1) + sum2(j)) * (N - i - 1)) -        ) % mod  # 下の行の階差部分，左右方向にあるから -        temp = (temp + sum2(N - i - 1) * M) % mod -        return temp - -    S = 0 -    for i in range(N): -        for j in range(M): -            S = (S + calc(i, j)) % mod -    rem = (N * M) - 2 -    for i in range(2, rem + 1): +    for i in range(2, N * M + 5 + 1): -    # print(rem,K-2) -    S = (S * cmb(rem, K - 2, mod)) % mod -    print(S) +    tempj = 0 +    for j in range(M): +        tempj += (M - j) * j +    tempi = 0 +    for i in range(N): +        tempi += (N - i) * i +    ans = (tempj * N * N) % mod +    ans = (ans + tempi * M * M) % mod +    ans = (ans * cmb(N * M - 2, K - 2, mod)) % mod +    print(ans)