#include <bits/stdc++.h>
using namespace std;

const long long INF = 1e9+7;
long long dp[100000][100000];

long long combi(long long n, long long k) {
  if (n == k || k == 0)
    return dp[n][k] = 1;

  if(dp[n][k]){
  	return dp[n][k];
  }else {
    return dp[n][k] = (combi(n - 1, k - 1) + combi(n - 1, k))%INF;
  }
}

int main() {
	int n,k;
	cin >> n >> k;

	vector<int> a(n);
	for(int i=0; i<n; i++){
		cin >> a.at(i);
	}
	long long ans=0;
	sort(a.begin(), a.end());
	for(int i=0; i<n-k; n++){
		for(int j=k; j<n; j++){
			if(j-i+1<k){
				continue;
			}else{
				int tmp = combi(j-i-1, k-2)*(a.at(j)-a.at(i))%INF;
				ans += tmp;
				ans %= INF;
			}
		}
	}
	cout << ans << endl;
}
