import sys
sys.setrecursionlimit(10000000)
MOD = 10 ** 9 + 7
INF = 10 ** 15

def main():
    N,M,K = map(int,input().split())

    MAXN = N*M
    fact = [1]
    for i in range(1,MAXN + 1):
        fact.append(fact[-1]*i%MOD)
    inv_fact = [-1] * (MAXN + 1)
    inv_fact[-1] = pow(fact[-1],MOD - 2,MOD)
    for i in range(MAXN - 1,-1,-1):
        inv_fact[i] = inv_fact[i + 1]*(i + 1)%MOD
    
    nck = lambda N,K: 0 if K > N or K < 0 else fact[N]*inv_fact[N - K]*inv_fact[K]%MOD

    ans = 0
    const = nck(N*M - 2,K - 2)
    for i in range(1,N):
        ans += (N - i) * M*M * const * i % MOD
        ans %= MOD
    
    for i in range(1,M):
        ans += (M - i) * N*N * const * i % MOD
        ans %= MOD
    print(ans)
if __name__ == '__main__':
    main() import sys sys sys.setrecursionlimit(10000000) sys.setrecursionlimit sys setrecursionlimit 10000000 MOD = 10 ** 9 + 7 MOD 10 ** 9 + 7 10 ** 9 10 9 7 INF = 10 ** 15 INF 10 ** 15 10 15 def main():
    N,M,K = map(int,input().split())

    MAXN = N*M
    fact = [1]
    for i in range(1,MAXN + 1):
        fact.append(fact[-1]*i%MOD)
    inv_fact = [-1] * (MAXN + 1)
    inv_fact[-1] = pow(fact[-1],MOD - 2,MOD)
    for i in range(MAXN - 1,-1,-1):
        inv_fact[i] = inv_fact[i + 1]*(i + 1)%MOD
    
    nck = lambda N,K: 0 if K > N or K < 0 else fact[N]*inv_fact[N - K]*inv_fact[K]%MOD

    ans = 0
    const = nck(N*M - 2,K - 2)
    for i in range(1,N):
        ans += (N - i) * M*M * const * i % MOD
        ans %= MOD
    
    for i in range(1,M):
        ans += (M - i) * N*N * const * i % MOD
        ans %= MOD
    print(ans) main N,M,K = map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split M K MAXN = N*M MAXN N*M N M fact = [1] fact [1] 1 for i in range(1,MAXN + 1):
        fact.append(fact[-1]*i%MOD)
     i range(1,MAXN + 1) range 1 MAXN + 1 MAXN 1 fact.append(fact[-1]*i%MOD) fact.append fact append fact[-1]*i%MOD fact[-1]*i fact[-1] fact -1 i MOD inv_fact = [-1] * (MAXN + 1) inv_fact [-1] * (MAXN + 1) [-1] -1 MAXN + 1 MAXN 1 inv_fact[-1] = pow(fact[-1],MOD - 2,MOD) inv_fact[-1] inv_fact -1 pow(fact[-1],MOD - 2,MOD) pow fact[-1] fact -1 MOD - 2 MOD 2 MOD for i in range(MAXN - 1,-1,-1):
        inv_fact[i] = inv_fact[i + 1]*(i + 1)%MOD
    
     i range(MAXN - 1,-1,-1) range MAXN - 1 MAXN 1 -1 -1 inv_fact[i] = inv_fact[i + 1]*(i + 1)%MOD inv_fact[i] inv_fact i inv_fact[i + 1]*(i + 1)%MOD inv_fact[i + 1]*(i + 1) inv_fact[i + 1] inv_fact i + 1 i 1 i + 1 i 1 MOD nck = lambda N,K: 0 if K > N or K < 0 else fact[N]*inv_fact[N - K]*inv_fact[K]%MOD nck lambda N,K: 0 if K > N or K < 0 else fact[N]*inv_fact[N - K]*inv_fact[K]%MOD 0 if K > N or K < 0 else fact[N]*inv_fact[N - K]*inv_fact[K]%MOD K > N or K < 0 K > N K N K < 0 K 0 0 fact[N]*inv_fact[N - K]*inv_fact[K]%MOD fact[N]*inv_fact[N - K]*inv_fact[K] fact[N]*inv_fact[N - K] fact[N] fact N inv_fact[N - K] inv_fact N - K N K inv_fact[K] inv_fact K MOD N K ans = 0 ans 0 const = nck(N*M - 2,K - 2) const nck(N*M - 2,K - 2) nck N*M - 2 N*M N M 2 K - 2 K 2 for i in range(1,N):
        ans += (N - i) * M*M * const * i % MOD
        ans %= MOD
    
     i range(1,N) range 1 N ans += (N - i) * M*M * const * i % MOD ans (N - i) * M*M * const * i % MOD (N - i) * M*M * const * i (N - i) * M*M * const (N - i) * M*M (N - i) * M N - i N i M M const i MOD ans %= MOD ans MOD for i in range(1,M):
        ans += (M - i) * N*N * const * i % MOD
        ans %= MOD
     i range(1,M) range 1 M ans += (M - i) * N*N * const * i % MOD ans (M - i) * N*N * const * i % MOD (M - i) * N*N * const * i (M - i) * N*N * const (M - i) * N*N (M - i) * N M - i M i N N const i MOD ans %= MOD ans MOD print(ans) print ans if __name__ == '__main__':
    main() __name__ == '__main__' __name__ '__main__' main() main MOD = 10 ** 9 + 7 10 ** 9 + 7 MOD INF = 10 ** 15 10 ** 15 INF def main():
    N,M,K = map(int,input().split())

    MAXN = N*M
    fact = [1]
    for i in range(1,MAXN + 1):
        fact.append(fact[-1]*i%MOD)
    inv_fact = [-1] * (MAXN + 1)
    inv_fact[-1] = pow(fact[-1],MOD - 2,MOD)
    for i in range(MAXN - 1,-1,-1):
        inv_fact[i] = inv_fact[i + 1]*(i + 1)%MOD
    
    nck = lambda N,K: 0 if K > N or K < 0 else fact[N]*inv_fact[N - K]*inv_fact[K]%MOD

    ans = 0
    const = nck(N*M - 2,K - 2)
    for i in range(1,N):
        ans += (N - i) * M*M * const * i % MOD
        ans %= MOD
    
    for i in range(1,M):
        ans += (M - i) * N*N * const * i % MOD
        ans %= MOD
    print(ans) def main():
    N,M,K = map(int,input().split())

    MAXN = N*M
    fact = [1]
    for i in range(1,MAXN + 1):
        fact.append(fact[-1]*i%MOD)
    inv_fact = [-1] * (MAXN + 1)
    inv_fact[-1] = pow(fact[-1],MOD - 2,MOD)
    for i in range(MAXN - 1,-1,-1):
        inv_fact[i] = inv_fact[i + 1]*(i + 1)%MOD
    
    nck = lambda N,K: 0 if K > N or K < 0 else fact[N]*inv_fact[N - K]*inv_fact[K]%MOD

    ans = 0
    const = nck(N*M - 2,K - 2)
    for i in range(1,N):
        ans += (N - i) * M*M * const * i % MOD
        ans %= MOD
    
    for i in range(1,M):
        ans += (M - i) * N*N * const * i % MOD
        ans %= MOD
    print(ans) main
import sys
sys.setrecursionlimit(10000000)
MOD = 10 ** 9 + 7
INF = 10 ** 15

def main():
    N,M,K = map(int,input().split())

    MAXN = N*M
    fact = [1]
    for i in range(1,MAXN + 1):
        fact.append(fact[-1]*i%MOD)
    inv_fact = [-1] * (MAXN + 1)
    inv_fact[-1] = pow(fact[-1],MOD - 2,MOD)
    for i in range(MAXN - 1,-1,-1):
        inv_fact[i] = inv_fact[i + 1]*(i + 1)%MOD
    
    nck = lambda N,K: 0 if K > N or K < 0 else fact[N]*inv_fact[N - K]*inv_fact[K]%MOD

    ans = 0
    const = nck(N*M - 2,K - 2)
    for i in range(1,N):
        ans += (N - i) * M*M * const * i % MOD
        ans %= MOD
    
    for i in range(1,M):
        ans += (M - i) * N*N * const * i % MOD
        ans %= MOD
    print(ans)
if __name__ == '__main__':
    main()