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

#############

mod = 10**9 + 7
max = n*m + 10
fac, finv, inv = [0]*max, [0]*max, [0]*max

def comInit(max):
    fac[0] = fac[1] = 1
    finv[0] = finv[1] = 1
    inv[1] = 1

    for i in range(2,max):
      fac[i] = fac[i-1]* i% mod
      inv[i] = mod - inv[mod%i] * (mod // i) % mod
      finv[i] = finv[i-1] * inv[i] % mod

comInit(max)

# 二項係数の計算
def com(n,k):
    if(n < k):
        return 0
    if( n<0 | k < 0):
        return 0
    return fac[n] * (finv[k] * finv[n-k] % mod) % mod

#############

ans = n*n*(m-1)*m*(m+1)//6 + m*m*(n-1)*n*(n+1)//6
ans = ans % mod
ans = (com(n*m -2, k-2) * ans) % mod

print(ans) 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 max = n*m + 10 max n*m + 10 n*m n m 10 fac, finv, inv = [0]*max, [0]*max, [0]*max fac [0]*max [0] 0 max finv [0]*max [0] 0 max inv [0]*max [0] 0 max def comInit(max):
    fac[0] = fac[1] = 1
    finv[0] = finv[1] = 1
    inv[1] = 1

    for i in range(2,max):
      fac[i] = fac[i-1]* i% mod
      inv[i] = mod - inv[mod%i] * (mod // i) % mod
      finv[i] = finv[i-1] * inv[i] % mod comInit fac[0] = fac[1] = 1 fac[0] fac 0 1 = fac[1] = 1 fac[1] fac 1 1 finv[0] = finv[1] = 1 finv[0] finv 0 1 = finv[1] = 1 finv[1] finv 1 1 inv[1] = 1 inv[1] inv 1 1 for i in range(2,max):
      fac[i] = fac[i-1]* i% mod
      inv[i] = mod - inv[mod%i] * (mod // i) % mod
      finv[i] = finv[i-1] * inv[i] % mod i range(2,max) range 2 max fac[i] = fac[i-1]* i% mod fac[i] fac i fac[i-1]* i% mod fac[i-1]* i fac[i-1] fac i-1 i 1 i mod inv[i] = mod - inv[mod%i] * (mod // i) % mod inv[i] inv i mod - inv[mod%i] * (mod // i) % mod mod inv[mod%i] * (mod // i) % mod inv[mod%i] * (mod // i) inv[mod%i] inv mod%i mod i mod // i mod i mod finv[i] = finv[i-1] * inv[i] % mod finv[i] finv i finv[i-1] * inv[i] % mod finv[i-1] * inv[i] finv[i-1] finv i-1 i 1 inv[i] inv i mod max max comInit(max) comInit max def com(n,k):
    if(n < k):
        return 0
    if( n<0 | k < 0):
        return 0
    return fac[n] * (finv[k] * finv[n-k] % mod) % mod

############# com if(n < k):
        return 0
     n < k n k return 0 0 if( n<0 | k < 0):
        return 0
     n<0 | k < 0 n<0 | k n 0 | k 0 k 0 return 0 0 return fac[n] * (finv[k] * finv[n-k] % mod) % mod fac[n] * (finv[k] * finv[n-k] % mod) % mod fac[n] * (finv[k] * finv[n-k] % mod) fac[n] fac n finv[k] * finv[n-k] % mod finv[k] * finv[n-k] finv[k] finv k finv[n-k] finv n-k n k mod mod n n k k ans = n*n*(m-1)*m*(m+1)//6 + m*m*(n-1)*n*(n+1)//6 ans n*n*(m-1)*m*(m+1)//6 + m*m*(n-1)*n*(n+1)//6 n*n*(m-1)*m*(m+1)//6 n*n*(m-1)*m*(m+1) n*n*(m-1)*m n*n*(m-1) n*n n n m-1 m 1 m m+1 m 1 6 m*m*(n-1)*n*(n+1)//6 m*m*(n-1)*n*(n+1) m*m*(n-1)*n m*m*(n-1) m*m m m n-1 n 1 n n+1 n 1 6 ans = ans % mod ans ans % mod ans mod ans = (com(n*m -2, k-2) * ans) % mod ans (com(n*m -2, k-2) * ans) % mod com(n*m -2, k-2) * ans com(n*m -2, k-2) com n*m -2 n*m n m 2 k-2 k 2 ans mod print(ans) print ans finv, inv = [0]*max, [0]*max, [0]*max [0]*max finv def comInit(max):
    fac[0] = fac[1] = 1
    finv[0] = finv[1] = 1
    inv[1] = 1

    for i in range(2,max):
      fac[i] = fac[i-1]* i% mod
      inv[i] = mod - inv[mod%i] * (mod // i) % mod
      finv[i] = finv[i-1] * inv[i] % mod def comInit(max):
    fac[0] = fac[1] = 1
    finv[0] = finv[1] = 1
    inv[1] = 1

    for i in range(2,max):
      fac[i] = fac[i-1]* i% mod
      inv[i] = mod - inv[mod%i] * (mod // i) % mod
      finv[i] = finv[i-1] * inv[i] % mod comInit def com(n,k):
    if(n < k):
        return 0
    if( n<0 | k < 0):
        return 0
    return fac[n] * (finv[k] * finv[n-k] % mod) % mod

############# def com(n,k):
    if(n < k):
        return 0
    if( n<0 | k < 0):
        return 0
    return fac[n] * (finv[k] * finv[n-k] % mod) % mod

############# com ans = ans % mod ans % mod ans k = map(int, input().split()) map(int, input().split()) k m,k = map(int, input().split()) map(int, input().split()) m n,m,k = map(int, input().split()) map(int, input().split()) n fac, finv, inv = [0]*max, [0]*max, [0]*max [0]*max fac max = n*m + 10 n*m + 10 max ans = n*n*(m-1)*m*(m+1)//6 + m*m*(n-1)*n*(n+1)//6 n*n*(m-1)*m*(m+1)//6 + m*m*(n-1)*n*(n+1)//6 ans ans = (com(n*m -2, k-2) * ans) % mod (com(n*m -2, k-2) * ans) % mod ans mod = 10**9 + 7 10**9 + 7 mod inv = [0]*max, [0]*max, [0]*max [0]*max inv
n,m,k = map(int, input().split())

#############

mod = 10**9 + 7
max = n*m + 10
fac, finv, inv = [0]*max, [0]*max, [0]*max

def comInit(max):
    fac[0] = fac[1] = 1
    finv[0] = finv[1] = 1
    inv[1] = 1

    for i in range(2,max):
      fac[i] = fac[i-1]* i% mod
      inv[i] = mod - inv[mod%i] * (mod // i) % mod
      finv[i] = finv[i-1] * inv[i] % mod

comInit(max)

# 二項係数の計算
def com(n,k):
    if(n < k):
        return 0
    if( n<0 | k < 0):
        return 0
    return fac[n] * (finv[k] * finv[n-k] % mod) % mod

#############

ans = n*n*(m-1)*m*(m+1)//6 + m*m*(n-1)*n*(n+1)//6
ans = ans % mod
ans = (com(n*m -2, k-2) * ans) % mod

print(ans)