N,M,K=map(int,input().split())
P=1000000007
f=[0]*(N*M+1)
f[0]=1
for i in range(N*M):
    f[i+1]=(i+1)*f[i]%P
ans=0
for A in [N,M]:
    for i in range(1,A):
        ans = (ans+(N^M^A)**2*i*(i+1)//2)%P
print(ans*f[N*M-2]*pow(f[K-2],P-2,P)*pow(f[N*M-K],P-2,P)%P) N,M,K=map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split M K P=1000000007 P 1000000007 f=[0]*(N*M+1) f [0]*(N*M+1) [0] 0 N*M+1 N*M N M 1 f[0]=1 f[0] f 0 1 for i in range(N*M):
    f[i+1]=(i+1)*f[i]%P i range(N*M) range N*M N M f[i+1]=(i+1)*f[i]%P f[i+1] f i+1 i 1 (i+1)*f[i]%P (i+1)*f[i] i+1 i 1 f[i] f i P ans=0 ans 0 for A in [N,M]:
    for i in range(1,A):
        ans = (ans+(N^M^A)**2*i*(i+1)//2)%P A [N,M] N M for i in range(1,A):
        ans = (ans+(N^M^A)**2*i*(i+1)//2)%P i range(1,A) range 1 A ans = (ans+(N^M^A)**2*i*(i+1)//2)%P ans (ans+(N^M^A)**2*i*(i+1)//2)%P ans+(N^M^A)**2*i*(i+1)//2 ans (N^M^A)**2*i*(i+1)//2 (N^M^A)**2*i*(i+1) (N^M^A)**2*i (N^M^A)**2 N^M^A N^M N M A 2 i i+1 i 1 2 P print(ans*f[N*M-2]*pow(f[K-2],P-2,P)*pow(f[N*M-K],P-2,P)%P) print ans*f[N*M-2]*pow(f[K-2],P-2,P)*pow(f[N*M-K],P-2,P)%P ans*f[N*M-2]*pow(f[K-2],P-2,P)*pow(f[N*M-K],P-2,P) ans*f[N*M-2]*pow(f[K-2],P-2,P) ans*f[N*M-2] ans f[N*M-2] f N*M-2 N*M N M 2 pow(f[K-2],P-2,P) pow f[K-2] f K-2 K 2 P-2 P 2 P pow(f[N*M-K],P-2,P) pow f[N*M-K] f N*M-K N*M N M K P-2 P 2 P P M,K=map(int,input().split()) map(int,input().split()) M N,M,K=map(int,input().split()) map(int,input().split()) N K=map(int,input().split()) map(int,input().split()) K ans = (ans+(N^M^A)**2*i*(i+1)//2)%P (ans+(N^M^A)**2*i*(i+1)//2)%P ans f=[0]*(N*M+1) [0]*(N*M+1) f P=1000000007 1000000007 P ans=0 0 ans
N,M,K=map(int,input().split())
P=1000000007
f=[0]*(N*M+1)
f[0]=1
for i in range(N*M):
    f[i+1]=(i+1)*f[i]%P
ans=0
for A in [N,M]:
    for i in range(1,A):
        ans = (ans+(N^M^A)**2*i*(i+1)//2)%P
print(ans*f[N*M-2]*pow(f[K-2],P-2,P)*pow(f[N*M-K],P-2,P)%P)