from collections import defaultdict



mod = 10 ** 9 + 7



memo = defaultdict(int)





def cmb(n, r):

    if (n, r) in memo:

        return memo[(n, r)]



    if n < r or r < 0:

        return 0



    if r > n - r:

        return cmb(n, n - r)



    res = f[n] * pow(f[n - r], mod - 2, mod) * pow(f[r], mod - 2, mod) % mod

    memo[(n, r)] = res

    return res





n, m, k = list(map(int, input().split()))



f = [1]

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

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



ans = 0

for d in range(1, m):

    ans += d * (m - d) * n ** 2

    ans %= mod



for d in range(1, n):

    ans += d * (n - d) * m ** 2

    ans %= mod



ans *= cmb(n * m - 2, k - 2)

ans %= mod



print(ans)

def solve():

    mod = 10 ** 9 + 7



    def cmb(n, r):

        def build():

            fs = [1]

            t = 1

            for x in range(1, h * w):

                t = (t * x) % mod

                fs.append(t)



            invs = [1] * (h * w)

            t = pow(t, mod - 2, mod)

            invs[-1] = t

            for x in range(h * w - 2, 0, -1):

                t = (t * (x + 1)) % mod

                invs[x] = t

            return fs, invs



        if r < 0 or r > n:

            return 0

        if r > (n - r):

            return cmb(n, n - r)

        if r == 0:

            return 1

        if r == 1:

            return n



        fs, invs = build()

        return fs[n] * invs[n - r] * invs[r] % mod



    h, w, k = list(map(int, input().split()))

    c = cmb(h * w - 2, k - 2)

    ret = (pow(w, 2) * sum((h - d) * d for d in range(h))

           + pow(h, 2) * sum((w - d) * d for d in range(w))) * c % mod



    return ret





print((solve()))
from collections import defaultdict

mod = 10**9 + 7
memo = defaultdict(int)


def cmb(n, r):
    if (n, r) in memo:
        return memo[(n, r)]
    if n < r or r < 0:
        return 0
    if r > n - r:
        return cmb(n, n - r)
    res = f[n] * pow(f[n - r], mod - 2, mod) * pow(f[r], mod - 2, mod) % mod
    memo[(n, r)] = res
    return res


n, m, k = list(map(int, input().split()))
f = [1]
for i in range(1, 2 * 10**5 + 1):
    f.append(f[-1] * i % mod)
ans = 0
for d in range(1, m):
    ans += d * (m - d) * n**2
    ans %= mod
for d in range(1, n):
    ans += d * (n - d) * m**2
    ans %= mod
ans *= cmb(n * m - 2, k - 2)
ans %= mod
print(ans)

def solve():
    mod = 10**9 + 7

    def cmb(n, r):
        def build():
            fs = [1]
            t = 1
            for x in range(1, h * w):
                t = (t * x) % mod
                fs.append(t)
            invs = [1] * (h * w)
            t = pow(t, mod - 2, mod)
            invs[-1] = t
            for x in range(h * w - 2, 0, -1):
                t = (t * (x + 1)) % mod
                invs[x] = t
            return fs, invs

        if r < 0 or r > n:
            return 0
        if r > (n - r):
            return cmb(n, n - r)
        if r == 0:
            return 1
        if r == 1:
            return n
        fs, invs = build()
        return fs[n] * invs[n - r] * invs[r] % mod

    h, w, k = list(map(int, input().split()))
    c = cmb(h * w - 2, k - 2)
    ret = (
        (
            pow(w, 2) * sum((h - d) * d for d in range(h))
            + pow(h, 2) * sum((w - d) * d for d in range(w))
        )
        * c
        % mod
    )
    return ret


print((solve()))

-from collections import defaultdict +def solve(): +    mod = 10**9 + 7 -mod = 10**9 + 7 -memo = defaultdict(int) +    def cmb(n, r): +        def build(): +            fs = [1] +            t = 1 +            for x in range(1, h * w): +                t = (t * x) % mod +                fs.append(t) +            invs = [1] * (h * w) +            t = pow(t, mod - 2, mod) +            invs[-1] = t +            for x in range(h * w - 2, 0, -1): +                t = (t * (x + 1)) % mod +                invs[x] = t +            return fs, invs + +        if r < 0 or r > n: +            return 0 +        if r > (n - r): +            return cmb(n, n - r) +        if r == 0: +            return 1 +        if r == 1: +            return n +        fs, invs = build() +        return fs[n] * invs[n - r] * invs[r] % mod + +    h, w, k = list(map(int, input().split())) +    c = cmb(h * w - 2, k - 2) +    ret = ( +        ( +            pow(w, 2) * sum((h - d) * d for d in range(h)) +            + pow(h, 2) * sum((w - d) * d for d in range(w)) +        ) +        * c +        % mod +    ) +    return ret -def cmb(n, r): -    if (n, r) in memo: -        return memo[(n, r)] -    if n < r or r < 0: -        return 0 -    if r > n - r: -        return cmb(n, n - r) -    res = f[n] * pow(f[n - r], mod - 2, mod) * pow(f[r], mod - 2, mod) % mod -    memo[(n, r)] = res -    return res - - -n, m, k = list(map(int, input().split())) -f = [1] -for i in range(1, 2 * 10**5 + 1): -    f.append(f[-1] * i % mod) -ans = 0 -for d in range(1, m): -    ans += d * (m - d) * n**2 -    ans %= mod -for d in range(1, n): -    ans += d * (n - d) * m**2 -    ans %= mod -ans *= cmb(n * m - 2, k - 2) -ans %= mod -print(ans) +print((solve()))