class Calc:
    def __init__(self, max_value, mod):
        """combination(max_value, all)"""
        fact = [-1] * (max_value + 1)
        fact[0] = 1
        fact[1] = 1
        for x in range(2, max_value + 1):
            fact[x] = x * fact[x - 1] % mod

        invs = [1] * (max_value + 1)
        invs[max_value] = pow(fact[max_value], mod - 2, mod)
        for x in range(max_value - 1, 0, -1):
            invs[x] = invs[x + 1] * (x + 1) % mod

        self.fact = fact
        self.invs = invs
        self.mod = mod

    def combination(self, n, r):
        if n - r < r:
            return self.combination(n, n - r)
        if r < 0:
            return 0
        if r == 0:
            return 1
        if r == 1:
            return n
        return self.fact[n] * self.invs[r] * self.invs[n - r] % self.mod


def main():
    MOD = 10 ** 9 + 7

    N, M, K = map(int, input().split())

    calc = Calc(max_value=N * M - 2, mod=MOD)

    xsum = 0
    for d in range(1, N):
        xsum = (xsum + d * (N - d)) % MOD
    xsum = (xsum * M * M) % MOD

    ysum = 0
    for d in range(1, M):
        ysum = (ysum + d * (M - d)) % MOD
    ysum = (ysum * N * N) % MOD

    ans = (xsum + ysum) * calc.combination(N * M - 2, K - 2) % MOD

    print(ans)


if __name__ == '__main__':
    main()

# import sys
#
# sys.setrecursionlimit(10 ** 7)
#
# input = sys.stdin.readline
# rstrip()
# int(input())
# map(int, input().split()) class Calc:
    def __init__(self, max_value, mod):
        """combination(max_value, all)"""
        fact = [-1] * (max_value + 1)
        fact[0] = 1
        fact[1] = 1
        for x in range(2, max_value + 1):
            fact[x] = x * fact[x - 1] % mod

        invs = [1] * (max_value + 1)
        invs[max_value] = pow(fact[max_value], mod - 2, mod)
        for x in range(max_value - 1, 0, -1):
            invs[x] = invs[x + 1] * (x + 1) % mod

        self.fact = fact
        self.invs = invs
        self.mod = mod

    def combination(self, n, r):
        if n - r < r:
            return self.combination(n, n - r)
        if r < 0:
            return 0
        if r == 0:
            return 1
        if r == 1:
            return n
        return self.fact[n] * self.invs[r] * self.invs[n - r] % self.mod Calc def __init__(self, max_value, mod):
        """combination(max_value, all)"""
        fact = [-1] * (max_value + 1)
        fact[0] = 1
        fact[1] = 1
        for x in range(2, max_value + 1):
            fact[x] = x * fact[x - 1] % mod

        invs = [1] * (max_value + 1)
        invs[max_value] = pow(fact[max_value], mod - 2, mod)
        for x in range(max_value - 1, 0, -1):
            invs[x] = invs[x + 1] * (x + 1) % mod

        self.fact = fact
        self.invs = invs
        self.mod = mod

     __init__ """combination(max_value, all)""" fact = [-1] * (max_value + 1) fact [-1] * (max_value + 1) [-1] -1 max_value + 1 max_value 1 fact[0] = 1 fact[0] fact 0 1 fact[1] = 1 fact[1] fact 1 1 for x in range(2, max_value + 1):
            fact[x] = x * fact[x - 1] % mod

         x range(2, max_value + 1) range 2 max_value + 1 max_value 1 fact[x] = x * fact[x - 1] % mod fact[x] fact x x * fact[x - 1] % mod x * fact[x - 1] x fact[x - 1] fact x - 1 x 1 mod invs = [1] * (max_value + 1) invs [1] * (max_value + 1) [1] 1 max_value + 1 max_value 1 invs[max_value] = pow(fact[max_value], mod - 2, mod) invs[max_value] invs max_value pow(fact[max_value], mod - 2, mod) pow fact[max_value] fact max_value mod - 2 mod 2 mod for x in range(max_value - 1, 0, -1):
            invs[x] = invs[x + 1] * (x + 1) % mod

         x range(max_value - 1, 0, -1) range max_value - 1 max_value 1 0 -1 invs[x] = invs[x + 1] * (x + 1) % mod invs[x] invs x invs[x + 1] * (x + 1) % mod invs[x + 1] * (x + 1) invs[x + 1] invs x + 1 x 1 x + 1 x 1 mod self.fact = fact self.fact self fact fact self.invs = invs self.invs self invs invs self.mod = mod self.mod self mod mod self self max_value max_value mod mod def combination(self, n, r):
        if n - r < r:
            return self.combination(n, n - r)
        if r < 0:
            return 0
        if r == 0:
            return 1
        if r == 1:
            return n
        return self.fact[n] * self.invs[r] * self.invs[n - r] % self.mod combination if n - r < r:
            return self.combination(n, n - r)
         n - r < r n - r n r r return self.combination(n, n - r) self.combination(n, n - r) self.combination self combination n n - r n r if r < 0:
            return 0
         r < 0 r 0 return 0 0 if r == 0:
            return 1
         r == 0 r 0 return 1 1 if r == 1:
            return n
         r == 1 r 1 return n n return self.fact[n] * self.invs[r] * self.invs[n - r] % self.mod self.fact[n] * self.invs[r] * self.invs[n - r] % self.mod self.fact[n] * self.invs[r] * self.invs[n - r] self.fact[n] * self.invs[r] self.fact[n] self.fact self fact n self.invs[r] self.invs self invs r self.invs[n - r] self.invs self invs n - r n r self.mod self mod self self n n r r def main():
    MOD = 10 ** 9 + 7

    N, M, K = map(int, input().split())

    calc = Calc(max_value=N * M - 2, mod=MOD)

    xsum = 0
    for d in range(1, N):
        xsum = (xsum + d * (N - d)) % MOD
    xsum = (xsum * M * M) % MOD

    ysum = 0
    for d in range(1, M):
        ysum = (ysum + d * (M - d)) % MOD
    ysum = (ysum * N * N) % MOD

    ans = (xsum + ysum) * calc.combination(N * M - 2, K - 2) % MOD

    print(ans) main MOD = 10 ** 9 + 7 MOD 10 ** 9 + 7 10 ** 9 10 9 7 N, M, K = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split M K calc = Calc(max_value=N * M - 2, mod=MOD) calc Calc(max_value=N * M - 2, mod=MOD) Calc max_value=N * M - 2 max_value N * M - 2 N * M N M 2 mod=MOD mod MOD xsum = 0 xsum 0 for d in range(1, N):
        xsum = (xsum + d * (N - d)) % MOD
     d range(1, N) range 1 N xsum = (xsum + d * (N - d)) % MOD xsum (xsum + d * (N - d)) % MOD xsum + d * (N - d) xsum d * (N - d) d N - d N d MOD xsum = (xsum * M * M) % MOD xsum (xsum * M * M) % MOD xsum * M * M xsum * M xsum M M MOD ysum = 0 ysum 0 for d in range(1, M):
        ysum = (ysum + d * (M - d)) % MOD
     d range(1, M) range 1 M ysum = (ysum + d * (M - d)) % MOD ysum (ysum + d * (M - d)) % MOD ysum + d * (M - d) ysum d * (M - d) d M - d M d MOD ysum = (ysum * N * N) % MOD ysum (ysum * N * N) % MOD ysum * N * N ysum * N ysum N N MOD ans = (xsum + ysum) * calc.combination(N * M - 2, K - 2) % MOD ans (xsum + ysum) * calc.combination(N * M - 2, K - 2) % MOD (xsum + ysum) * calc.combination(N * M - 2, K - 2) xsum + ysum xsum ysum calc.combination(N * M - 2, K - 2) calc.combination calc combination N * M - 2 N * M N M 2 K - 2 K 2 MOD print(ans) print ans if __name__ == '__main__':
    main()

# import sys
#
# sys.setrecursionlimit(10 ** 7)
#
# input = sys.stdin.readline
# rstrip()
# int(input())
# map(int, input().split()) __name__ == '__main__' __name__ '__main__' main() main class Calc:
    def __init__(self, max_value, mod):
        """combination(max_value, all)"""
        fact = [-1] * (max_value + 1)
        fact[0] = 1
        fact[1] = 1
        for x in range(2, max_value + 1):
            fact[x] = x * fact[x - 1] % mod

        invs = [1] * (max_value + 1)
        invs[max_value] = pow(fact[max_value], mod - 2, mod)
        for x in range(max_value - 1, 0, -1):
            invs[x] = invs[x + 1] * (x + 1) % mod

        self.fact = fact
        self.invs = invs
        self.mod = mod

    def combination(self, n, r):
        if n - r < r:
            return self.combination(n, n - r)
        if r < 0:
            return 0
        if r == 0:
            return 1
        if r == 1:
            return n
        return self.fact[n] * self.invs[r] * self.invs[n - r] % self.mod class Calc:
    def __init__(self, max_value, mod):
        """combination(max_value, all)"""
        fact = [-1] * (max_value + 1)
        fact[0] = 1
        fact[1] = 1
        for x in range(2, max_value + 1):
            fact[x] = x * fact[x - 1] % mod

        invs = [1] * (max_value + 1)
        invs[max_value] = pow(fact[max_value], mod - 2, mod)
        for x in range(max_value - 1, 0, -1):
            invs[x] = invs[x + 1] * (x + 1) % mod

        self.fact = fact
        self.invs = invs
        self.mod = mod

    def combination(self, n, r):
        if n - r < r:
            return self.combination(n, n - r)
        if r < 0:
            return 0
        if r == 0:
            return 1
        if r == 1:
            return n
        return self.fact[n] * self.invs[r] * self.invs[n - r] % self.mod Calc def main():
    MOD = 10 ** 9 + 7

    N, M, K = map(int, input().split())

    calc = Calc(max_value=N * M - 2, mod=MOD)

    xsum = 0
    for d in range(1, N):
        xsum = (xsum + d * (N - d)) % MOD
    xsum = (xsum * M * M) % MOD

    ysum = 0
    for d in range(1, M):
        ysum = (ysum + d * (M - d)) % MOD
    ysum = (ysum * N * N) % MOD

    ans = (xsum + ysum) * calc.combination(N * M - 2, K - 2) % MOD

    print(ans) def main():
    MOD = 10 ** 9 + 7

    N, M, K = map(int, input().split())

    calc = Calc(max_value=N * M - 2, mod=MOD)

    xsum = 0
    for d in range(1, N):
        xsum = (xsum + d * (N - d)) % MOD
    xsum = (xsum * M * M) % MOD

    ysum = 0
    for d in range(1, M):
        ysum = (ysum + d * (M - d)) % MOD
    ysum = (ysum * N * N) % MOD

    ans = (xsum + ysum) * calc.combination(N * M - 2, K - 2) % MOD

    print(ans) main
class Calc:
    def __init__(self, max_value, mod):
        """combination(max_value, all)"""
        fact = [-1] * (max_value + 1)
        fact[0] = 1
        fact[1] = 1
        for x in range(2, max_value + 1):
            fact[x] = x * fact[x - 1] % mod

        invs = [1] * (max_value + 1)
        invs[max_value] = pow(fact[max_value], mod - 2, mod)
        for x in range(max_value - 1, 0, -1):
            invs[x] = invs[x + 1] * (x + 1) % mod

        self.fact = fact
        self.invs = invs
        self.mod = mod

    def combination(self, n, r):
        if n - r < r:
            return self.combination(n, n - r)
        if r < 0:
            return 0
        if r == 0:
            return 1
        if r == 1:
            return n
        return self.fact[n] * self.invs[r] * self.invs[n - r] % self.mod


def main():
    MOD = 10 ** 9 + 7

    N, M, K = map(int, input().split())

    calc = Calc(max_value=N * M - 2, mod=MOD)

    xsum = 0
    for d in range(1, N):
        xsum = (xsum + d * (N - d)) % MOD
    xsum = (xsum * M * M) % MOD

    ysum = 0
    for d in range(1, M):
        ysum = (ysum + d * (M - d)) % MOD
    ysum = (ysum * N * N) % MOD

    ans = (xsum + ysum) * calc.combination(N * M - 2, K - 2) % MOD

    print(ans)


if __name__ == '__main__':
    main()

# import sys
#
# sys.setrecursionlimit(10 ** 7)
#
# input = sys.stdin.readline
# rstrip()
# int(input())
# map(int, input().split())
