class cmbs(object):
    def __init__(self, mod):
        self.mod = mod
        self.g1 = [1, 1]
        self.g2 = [1, 1]
        inverse = [0, 1]
        for i in range(2, 10 ** 6 + 1):
            self.g1.append((self.g1[-1] * i) % mod)
            inverse.append((-inverse[mod % i] * (mod // i)) % mod)
            self.g2.append((self.g2[-1] * inverse[-1]) % mod)

    def cmb(self, n, r):
        if n > 10 ** 6:
            return self.cmbl(n, r)
        return self.cmbr(n, r)

    def cmbr(self, n, r):
        if r < 0 or r > n:
            return 0
        r = min(r, n - r)
        return self.g1[n] * self.g2[r] * self.g2[n-r] % self.mod

    def cmbl(self, n, r):
        t = 1
        r = min(r, n-r)
        for i in range(n - r + 1, n + 1):
            t = t * i % self.mod
        return t * self.g2[r] % self.mod

def main():
    N, M, K = map(int, input().split())
    mod = 10**9 + 7
    c = cmbs(mod)
    r = c.cmb((N*M)-2, K-2)
    r2 = 0
    for i in range(N):
        r2 += i * (N - i)
        #r2 += ((i + 1) * i + (N - i - 1) * (N-i))//2
    r2 *= pow(M, 2, mod)
    r2 %= mod
    r3 = 0
    for i in range(M):
        r3 += i * (M-i)
        #r3 += ((i + 1) * i + (M - i - 1) * (M-i))//2
    r3 *= pow(N, 2, mod)
    r3 %= mod
    r = r * (r2 + r3) #// 2
    return r % mod
print(main()) class cmbs(object):
    def __init__(self, mod):
        self.mod = mod
        self.g1 = [1, 1]
        self.g2 = [1, 1]
        inverse = [0, 1]
        for i in range(2, 10 ** 6 + 1):
            self.g1.append((self.g1[-1] * i) % mod)
            inverse.append((-inverse[mod % i] * (mod // i)) % mod)
            self.g2.append((self.g2[-1] * inverse[-1]) % mod)

    def cmb(self, n, r):
        if n > 10 ** 6:
            return self.cmbl(n, r)
        return self.cmbr(n, r)

    def cmbr(self, n, r):
        if r < 0 or r > n:
            return 0
        r = min(r, n - r)
        return self.g1[n] * self.g2[r] * self.g2[n-r] % self.mod

    def cmbl(self, n, r):
        t = 1
        r = min(r, n-r)
        for i in range(n - r + 1, n + 1):
            t = t * i % self.mod
        return t * self.g2[r] % self.mod cmbs def __init__(self, mod):
        self.mod = mod
        self.g1 = [1, 1]
        self.g2 = [1, 1]
        inverse = [0, 1]
        for i in range(2, 10 ** 6 + 1):
            self.g1.append((self.g1[-1] * i) % mod)
            inverse.append((-inverse[mod % i] * (mod // i)) % mod)
            self.g2.append((self.g2[-1] * inverse[-1]) % mod)

     __init__ self.mod = mod self.mod self mod mod self.g1 = [1, 1] self.g1 self g1 [1, 1] 1 1 self.g2 = [1, 1] self.g2 self g2 [1, 1] 1 1 inverse = [0, 1] inverse [0, 1] 0 1 for i in range(2, 10 ** 6 + 1):
            self.g1.append((self.g1[-1] * i) % mod)
            inverse.append((-inverse[mod % i] * (mod // i)) % mod)
            self.g2.append((self.g2[-1] * inverse[-1]) % mod)

     i range(2, 10 ** 6 + 1) range 2 10 ** 6 + 1 10 ** 6 10 6 1 self.g1.append((self.g1[-1] * i) % mod) self.g1.append self.g1 self g1 append (self.g1[-1] * i) % mod self.g1[-1] * i self.g1[-1] self.g1 self g1 -1 i mod inverse.append((-inverse[mod % i] * (mod // i)) % mod) inverse.append inverse append (-inverse[mod % i] * (mod // i)) % mod -inverse[mod % i] * (mod // i) -inverse[mod % i] inverse[mod % i] inverse mod % i mod i mod // i mod i mod self.g2.append((self.g2[-1] * inverse[-1]) % mod) self.g2.append self.g2 self g2 append (self.g2[-1] * inverse[-1]) % mod self.g2[-1] * inverse[-1] self.g2[-1] self.g2 self g2 -1 inverse[-1] inverse -1 mod self self mod mod def cmb(self, n, r):
        if n > 10 ** 6:
            return self.cmbl(n, r)
        return self.cmbr(n, r)

     cmb if n > 10 ** 6:
            return self.cmbl(n, r)
         n > 10 ** 6 n 10 ** 6 10 6 return self.cmbl(n, r) self.cmbl(n, r) self.cmbl self cmbl n r return self.cmbr(n, r) self.cmbr(n, r) self.cmbr self cmbr n r self self n n r r def cmbr(self, n, r):
        if r < 0 or r > n:
            return 0
        r = min(r, n - r)
        return self.g1[n] * self.g2[r] * self.g2[n-r] % self.mod

     cmbr if r < 0 or r > n:
            return 0
         r < 0 or r > n r < 0 r 0 r > n r n return 0 0 r = min(r, n - r) r min(r, n - r) min r n - r n r return self.g1[n] * self.g2[r] * self.g2[n-r] % self.mod self.g1[n] * self.g2[r] * self.g2[n-r] % self.mod self.g1[n] * self.g2[r] * self.g2[n-r] self.g1[n] * self.g2[r] self.g1[n] self.g1 self g1 n self.g2[r] self.g2 self g2 r self.g2[n-r] self.g2 self g2 n-r n r self.mod self mod self self n n r r def cmbl(self, n, r):
        t = 1
        r = min(r, n-r)
        for i in range(n - r + 1, n + 1):
            t = t * i % self.mod
        return t * self.g2[r] % self.mod cmbl t = 1 t 1 r = min(r, n-r) r min(r, n-r) min r n-r n r for i in range(n - r + 1, n + 1):
            t = t * i % self.mod
         i range(n - r + 1, n + 1) range n - r + 1 n - r n r 1 n + 1 n 1 t = t * i % self.mod t t * i % self.mod t * i t i self.mod self mod return t * self.g2[r] % self.mod t * self.g2[r] % self.mod t * self.g2[r] t self.g2[r] self.g2 self g2 r self.mod self mod self self n n r r object def main():
    N, M, K = map(int, input().split())
    mod = 10**9 + 7
    c = cmbs(mod)
    r = c.cmb((N*M)-2, K-2)
    r2 = 0
    for i in range(N):
        r2 += i * (N - i)
        #r2 += ((i + 1) * i + (N - i - 1) * (N-i))//2
    r2 *= pow(M, 2, mod)
    r2 %= mod
    r3 = 0
    for i in range(M):
        r3 += i * (M-i)
        #r3 += ((i + 1) * i + (M - i - 1) * (M-i))//2
    r3 *= pow(N, 2, mod)
    r3 %= mod
    r = r * (r2 + r3) #// 2
    return r % mod main N, M, K = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split M K mod = 10**9 + 7 mod 10**9 + 7 10**9 10 9 7 c = cmbs(mod) c cmbs(mod) cmbs mod r = c.cmb((N*M)-2, K-2) r c.cmb((N*M)-2, K-2) c.cmb c cmb (N*M)-2 N*M N M 2 K-2 K 2 r2 = 0 r2 0 for i in range(N):
        r2 += i * (N - i)
        #r2 += ((i + 1) * i + (N - i - 1) * (N-i))//2
     i range(N) range N r2 += i * (N - i) r2 i * (N - i) i N - i N i r2 *= pow(M, 2, mod) r2 pow(M, 2, mod) pow M 2 mod r2 %= mod r2 mod r3 = 0 r3 0 for i in range(M):
        r3 += i * (M-i)
        #r3 += ((i + 1) * i + (M - i - 1) * (M-i))//2
     i range(M) range M r3 += i * (M-i) r3 i * (M-i) i M-i M i r3 *= pow(N, 2, mod) r3 pow(N, 2, mod) pow N 2 mod r3 %= mod r3 mod r = r * (r2 + r3) r r * (r2 + r3) r r2 + r3 r2 r3 return r % mod r % mod r mod print(main()) print main() main def main():
    N, M, K = map(int, input().split())
    mod = 10**9 + 7
    c = cmbs(mod)
    r = c.cmb((N*M)-2, K-2)
    r2 = 0
    for i in range(N):
        r2 += i * (N - i)
        #r2 += ((i + 1) * i + (N - i - 1) * (N-i))//2
    r2 *= pow(M, 2, mod)
    r2 %= mod
    r3 = 0
    for i in range(M):
        r3 += i * (M-i)
        #r3 += ((i + 1) * i + (M - i - 1) * (M-i))//2
    r3 *= pow(N, 2, mod)
    r3 %= mod
    r = r * (r2 + r3) #// 2
    return r % mod def main():
    N, M, K = map(int, input().split())
    mod = 10**9 + 7
    c = cmbs(mod)
    r = c.cmb((N*M)-2, K-2)
    r2 = 0
    for i in range(N):
        r2 += i * (N - i)
        #r2 += ((i + 1) * i + (N - i - 1) * (N-i))//2
    r2 *= pow(M, 2, mod)
    r2 %= mod
    r3 = 0
    for i in range(M):
        r3 += i * (M-i)
        #r3 += ((i + 1) * i + (M - i - 1) * (M-i))//2
    r3 *= pow(N, 2, mod)
    r3 %= mod
    r = r * (r2 + r3) #// 2
    return r % mod main class cmbs(object):
    def __init__(self, mod):
        self.mod = mod
        self.g1 = [1, 1]
        self.g2 = [1, 1]
        inverse = [0, 1]
        for i in range(2, 10 ** 6 + 1):
            self.g1.append((self.g1[-1] * i) % mod)
            inverse.append((-inverse[mod % i] * (mod // i)) % mod)
            self.g2.append((self.g2[-1] * inverse[-1]) % mod)

    def cmb(self, n, r):
        if n > 10 ** 6:
            return self.cmbl(n, r)
        return self.cmbr(n, r)

    def cmbr(self, n, r):
        if r < 0 or r > n:
            return 0
        r = min(r, n - r)
        return self.g1[n] * self.g2[r] * self.g2[n-r] % self.mod

    def cmbl(self, n, r):
        t = 1
        r = min(r, n-r)
        for i in range(n - r + 1, n + 1):
            t = t * i % self.mod
        return t * self.g2[r] % self.mod class cmbs(object):
    def __init__(self, mod):
        self.mod = mod
        self.g1 = [1, 1]
        self.g2 = [1, 1]
        inverse = [0, 1]
        for i in range(2, 10 ** 6 + 1):
            self.g1.append((self.g1[-1] * i) % mod)
            inverse.append((-inverse[mod % i] * (mod // i)) % mod)
            self.g2.append((self.g2[-1] * inverse[-1]) % mod)

    def cmb(self, n, r):
        if n > 10 ** 6:
            return self.cmbl(n, r)
        return self.cmbr(n, r)

    def cmbr(self, n, r):
        if r < 0 or r > n:
            return 0
        r = min(r, n - r)
        return self.g1[n] * self.g2[r] * self.g2[n-r] % self.mod

    def cmbl(self, n, r):
        t = 1
        r = min(r, n-r)
        for i in range(n - r + 1, n + 1):
            t = t * i % self.mod
        return t * self.g2[r] % self.mod cmbs
class cmbs(object):
    def __init__(self, mod):
        self.mod = mod
        self.g1 = [1, 1]
        self.g2 = [1, 1]
        inverse = [0, 1]
        for i in range(2, 10 ** 6 + 1):
            self.g1.append((self.g1[-1] * i) % mod)
            inverse.append((-inverse[mod % i] * (mod // i)) % mod)
            self.g2.append((self.g2[-1] * inverse[-1]) % mod)

    def cmb(self, n, r):
        if n > 10 ** 6:
            return self.cmbl(n, r)
        return self.cmbr(n, r)

    def cmbr(self, n, r):
        if r < 0 or r > n:
            return 0
        r = min(r, n - r)
        return self.g1[n] * self.g2[r] * self.g2[n-r] % self.mod

    def cmbl(self, n, r):
        t = 1
        r = min(r, n-r)
        for i in range(n - r + 1, n + 1):
            t = t * i % self.mod
        return t * self.g2[r] % self.mod

def main():
    N, M, K = map(int, input().split())
    mod = 10**9 + 7
    c = cmbs(mod)
    r = c.cmb((N*M)-2, K-2)
    r2 = 0
    for i in range(N):
        r2 += i * (N - i)
        #r2 += ((i + 1) * i + (N - i - 1) * (N-i))//2
    r2 *= pow(M, 2, mod)
    r2 %= mod
    r3 = 0
    for i in range(M):
        r3 += i * (M-i)
        #r3 += ((i + 1) * i + (M - i - 1) * (M-i))//2
    r3 *= pow(N, 2, mod)
    r3 %= mod
    r = r * (r2 + r3) #// 2
    return r % mod
print(main())
