let threshold = 1000000007
var fac: [Int] = [1]
var ifac: [Int] = [1]

func comb(_ n: Int, _ k: Int) -> Int {
  return ((fac[n] * ifac[k]) % threshold) * ifac[n-k] % threshold
}

func powd(_ x: Int, _ n: Int) -> Int {
  var result = 1
  var n = n
  var x = x
  while n != 0 {
    if n & 1 == 1 {
      result = result * x % threshold
    }
    x = x * x % threshold
    n >>= 1
  }
  return result
}

let input = readLine()!.split(separator: " ").map { Int($0)! }
let N = input[0]
let M = input[1]
let K = input[2]
for i in 1...N*M {
  fac.append(fac[i-1] * i % threshold)
  ifac.append(ifac[i-1] * powd(i, threshold - 2) % threshold)
}



var coe = comb(N * M - 2, K - 2)
var ans = 0
var a = 0
for i in 1..<N {
  a = i * (N - i)
  a %= threshold
  a *= (M * M)
  a %= threshold
  ans += a
  ans %= threshold
}
for i in 1..<M {
  a = i * (M - i)
  a %= threshold
  a *= (N * N)
  a %= threshold
  ans += a
  ans %= threshold
}

ans = coe * ans % threshold
print(ans)
