#設定
import sys
input = sys.stdin.buffer.readline

con = 10 ** 9 + 7
#ライブラリインポート
from collections import defaultdict

class Combination(object):
	def __init__(self, N, con):
		self.fac = [0] * (N + 1)
		self.inv = [0] * (N + 1)
		self.finv = [0] * (N + 1)
		self.fac[0], self.fac[1] = 1, 1
		self.inv[1] = 1
		self.finv[0], self.finv[1] = 1, 1

		# 前計算
		for i in range(2, N + 1):
			self.fac[i] = self.fac[i - 1] * i % con
			self.inv[i] = self.inv[con % i] * (con - (con // i)) % con
			self.finv[i] = self.finv[i - 1] * self.inv[i] % con

	def com(self, N, k):
		return (self.fac[N] * self.finv[k] * self.finv[N - k]) % con

#入力受け取り
def getlist():
	return list(map(int, input().split()))

#処理内容
def main():
	N, M, K = getlist()
	C = Combination(N * M - 2, con)
	c = C.com(N * M - 2, K - 2)
	s = (N * (N + 1) * (N - 1)) // 6 * (M ** 2)
	t = (M * (M + 1) * (M - 1)) // 6 * (N ** 2)
	ans = c * (s + t)
	print(ans % con)

if __name__ == '__main__':
	main() import sys sys input = sys.stdin.buffer.readline input sys.stdin.buffer.readline sys.stdin.buffer sys.stdin sys stdin buffer readline con = 10 ** 9 + 7 con 10 ** 9 + 7 10 ** 9 10 9 7 from collections import defaultdict class Combination(object):
	def __init__(self, N, con):
		self.fac = [0] * (N + 1)
		self.inv = [0] * (N + 1)
		self.finv = [0] * (N + 1)
		self.fac[0], self.fac[1] = 1, 1
		self.inv[1] = 1
		self.finv[0], self.finv[1] = 1, 1

		# 前計算
		for i in range(2, N + 1):
			self.fac[i] = self.fac[i - 1] * i % con
			self.inv[i] = self.inv[con % i] * (con - (con // i)) % con
			self.finv[i] = self.finv[i - 1] * self.inv[i] % con

	def com(self, N, k):
		return (self.fac[N] * self.finv[k] * self.finv[N - k]) % con

#入力受け取り Combination def __init__(self, N, con):
		self.fac = [0] * (N + 1)
		self.inv = [0] * (N + 1)
		self.finv = [0] * (N + 1)
		self.fac[0], self.fac[1] = 1, 1
		self.inv[1] = 1
		self.finv[0], self.finv[1] = 1, 1

		# 前計算
		for i in range(2, N + 1):
			self.fac[i] = self.fac[i - 1] * i % con
			self.inv[i] = self.inv[con % i] * (con - (con // i)) % con
			self.finv[i] = self.finv[i - 1] * self.inv[i] % con

	 __init__ self.fac = [0] * (N + 1) self.fac self fac [0] * (N + 1) [0] 0 N + 1 N 1 self.inv = [0] * (N + 1) self.inv self inv [0] * (N + 1) [0] 0 N + 1 N 1 self.finv = [0] * (N + 1) self.finv self finv [0] * (N + 1) [0] 0 N + 1 N 1 self.fac[0], self.fac[1] = 1, 1 self.fac[0] self.fac self fac 0 1 self.fac[1] self.fac self fac 1 1 self.inv[1] = 1 self.inv[1] self.inv self inv 1 1 self.finv[0], self.finv[1] = 1, 1 self.finv[0] self.finv self finv 0 1 self.finv[1] self.finv self finv 1 1 for i in range(2, N + 1):
			self.fac[i] = self.fac[i - 1] * i % con
			self.inv[i] = self.inv[con % i] * (con - (con // i)) % con
			self.finv[i] = self.finv[i - 1] * self.inv[i] % con

	 i range(2, N + 1) range 2 N + 1 N 1 self.fac[i] = self.fac[i - 1] * i % con self.fac[i] self.fac self fac i self.fac[i - 1] * i % con self.fac[i - 1] * i self.fac[i - 1] self.fac self fac i - 1 i 1 i con self.inv[i] = self.inv[con % i] * (con - (con // i)) % con self.inv[i] self.inv self inv i self.inv[con % i] * (con - (con // i)) % con self.inv[con % i] * (con - (con // i)) self.inv[con % i] self.inv self inv con % i con i con - (con // i) con con // i con i con self.finv[i] = self.finv[i - 1] * self.inv[i] % con self.finv[i] self.finv self finv i self.finv[i - 1] * self.inv[i] % con self.finv[i - 1] * self.inv[i] self.finv[i - 1] self.finv self finv i - 1 i 1 self.inv[i] self.inv self inv i con self self N N con con def com(self, N, k):
		return (self.fac[N] * self.finv[k] * self.finv[N - k]) % con

#入力受け取り com return (self.fac[N] * self.finv[k] * self.finv[N - k]) % con (self.fac[N] * self.finv[k] * self.finv[N - k]) % con self.fac[N] * self.finv[k] * self.finv[N - k] self.fac[N] * self.finv[k] self.fac[N] self.fac self fac N self.finv[k] self.finv self finv k self.finv[N - k] self.finv self finv N - k N k con self self N N k k object def getlist():
	return list(map(int, input().split()))

#処理内容 getlist return list(map(int, input().split())) list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split def main():
	N, M, K = getlist()
	C = Combination(N * M - 2, con)
	c = C.com(N * M - 2, K - 2)
	s = (N * (N + 1) * (N - 1)) // 6 * (M ** 2)
	t = (M * (M + 1) * (M - 1)) // 6 * (N ** 2)
	ans = c * (s + t)
	print(ans % con) main N, M, K = getlist() N getlist() getlist M K C = Combination(N * M - 2, con) C Combination(N * M - 2, con) Combination N * M - 2 N * M N M 2 con c = C.com(N * M - 2, K - 2) c C.com(N * M - 2, K - 2) C.com C com N * M - 2 N * M N M 2 K - 2 K 2 s = (N * (N + 1) * (N - 1)) // 6 * (M ** 2) s (N * (N + 1) * (N - 1)) // 6 * (M ** 2) (N * (N + 1) * (N - 1)) // 6 N * (N + 1) * (N - 1) N * (N + 1) N N + 1 N 1 N - 1 N 1 6 M ** 2 M 2 t = (M * (M + 1) * (M - 1)) // 6 * (N ** 2) t (M * (M + 1) * (M - 1)) // 6 * (N ** 2) (M * (M + 1) * (M - 1)) // 6 M * (M + 1) * (M - 1) M * (M + 1) M M + 1 M 1 M - 1 M 1 6 N ** 2 N 2 ans = c * (s + t) ans c * (s + t) c s + t s t print(ans % con) print ans % con ans con if __name__ == '__main__':
	main() __name__ == '__main__' __name__ '__main__' main() main input = sys.stdin.buffer.readline sys.stdin.buffer.readline input class Combination(object):
	def __init__(self, N, con):
		self.fac = [0] * (N + 1)
		self.inv = [0] * (N + 1)
		self.finv = [0] * (N + 1)
		self.fac[0], self.fac[1] = 1, 1
		self.inv[1] = 1
		self.finv[0], self.finv[1] = 1, 1

		# 前計算
		for i in range(2, N + 1):
			self.fac[i] = self.fac[i - 1] * i % con
			self.inv[i] = self.inv[con % i] * (con - (con // i)) % con
			self.finv[i] = self.finv[i - 1] * self.inv[i] % con

	def com(self, N, k):
		return (self.fac[N] * self.finv[k] * self.finv[N - k]) % con

#入力受け取り class Combination(object):
	def __init__(self, N, con):
		self.fac = [0] * (N + 1)
		self.inv = [0] * (N + 1)
		self.finv = [0] * (N + 1)
		self.fac[0], self.fac[1] = 1, 1
		self.inv[1] = 1
		self.finv[0], self.finv[1] = 1, 1

		# 前計算
		for i in range(2, N + 1):
			self.fac[i] = self.fac[i - 1] * i % con
			self.inv[i] = self.inv[con % i] * (con - (con // i)) % con
			self.finv[i] = self.finv[i - 1] * self.inv[i] % con

	def com(self, N, k):
		return (self.fac[N] * self.finv[k] * self.finv[N - k]) % con

#入力受け取り Combination def getlist():
	return list(map(int, input().split()))

#処理内容 def getlist():
	return list(map(int, input().split()))

#処理内容 getlist def main():
	N, M, K = getlist()
	C = Combination(N * M - 2, con)
	c = C.com(N * M - 2, K - 2)
	s = (N * (N + 1) * (N - 1)) // 6 * (M ** 2)
	t = (M * (M + 1) * (M - 1)) // 6 * (N ** 2)
	ans = c * (s + t)
	print(ans % con) def main():
	N, M, K = getlist()
	C = Combination(N * M - 2, con)
	c = C.com(N * M - 2, K - 2)
	s = (N * (N + 1) * (N - 1)) // 6 * (M ** 2)
	t = (M * (M + 1) * (M - 1)) // 6 * (N ** 2)
	ans = c * (s + t)
	print(ans % con) main con = 10 ** 9 + 7 10 ** 9 + 7 con
#設定
import sys
input = sys.stdin.buffer.readline

con = 10 ** 9 + 7
#ライブラリインポート
from collections import defaultdict

class Combination(object):
	def __init__(self, N, con):
		self.fac = [0] * (N + 1)
		self.inv = [0] * (N + 1)
		self.finv = [0] * (N + 1)
		self.fac[0], self.fac[1] = 1, 1
		self.inv[1] = 1
		self.finv[0], self.finv[1] = 1, 1

		# 前計算
		for i in range(2, N + 1):
			self.fac[i] = self.fac[i - 1] * i % con
			self.inv[i] = self.inv[con % i] * (con - (con // i)) % con
			self.finv[i] = self.finv[i - 1] * self.inv[i] % con

	def com(self, N, k):
		return (self.fac[N] * self.finv[k] * self.finv[N - k]) % con

#入力受け取り
def getlist():
	return list(map(int, input().split()))

#処理内容
def main():
	N, M, K = getlist()
	C = Combination(N * M - 2, con)
	c = C.com(N * M - 2, K - 2)
	s = (N * (N + 1) * (N - 1)) // 6 * (M ** 2)
	t = (M * (M + 1) * (M - 1)) // 6 * (N ** 2)
	ans = c * (s + t)
	print(ans % con)

if __name__ == '__main__':
	main()