c++
Code

# Code
```cpp []
class Solution {
public:
    int mod =1e9+7;
    long long binpow(long long a, long long b, long long m) {
        a %= m;
        long long res = 1;
        while (b > 0) {
            if (b & 1)
                res = res * a % m;
            a = a * a % m;
            b >>= 1;
        }
        return res;
    }
    int distanceSum(int m, int n, int k) {
        long long int a =1;
        for(int i=1;i<=m*n-2;i++){
            a*=(i);
            a%=mod;
        }
        long long int b=1;
        for(int i=1;i<=(m*n-k);i++){
            b*=i;
            b%=mod;
        }
        long long int c=1;
        for(int i=1;i<=(k-2);i++){
            c*=i;
            c%=mod;
        }
        c*=b;
        c%=mod;
        a = a*(binpow(c,mod-2,mod)%mod);
        a%=mod;
        long long int a1 = (((((1ll*n*n%mod)*m%mod)*(m-1)%mod)*(m+1)%mod));
        swap(m,n);
        long long int a2 =(((((1ll*n*n%mod)*m%mod)*(m-1)%mod)*(m+1)%mod));
        a1+=a2;
        a1%=mod;
        a1*=binpow(6,mod-2,mod);
        a1%=mod;
        long long int ans = (a*a1)%mod;
        return (int)ans;
    }
};
```
['C++']