#include <bits\stdc++.h>
#define ll long long
using namespace std;
ll n, k;
ll a[100009], fact[100009],inv[100009], mod = (ll)1e9+7;
ll fp(ll b, ll p)
{
	if (p == 0)
		return 1;
	ll ans = fp(b, p / 2);
	ans = (ans * ans) % mod;
	if (p % 2)
		ans = (ans * (b % mod)) % mod;
	return ans;
}
void pre()
{
	ll e = 100005;
	fact[0] = inv[0] = 1;
	for (ll i = 1; i <= e; i++)
	{
		fact[i] = (i * fact[i - 1]) % mod;
		inv[i] = fp(fact[i], mod - 2);
	}
}
ll ncr(ll n, ll r)
{
	return ((fact[n] * inv[r]) % mod * inv[n - r]) % mod;
}
ll mx[100009], mn[100009];
int main()
{
	pre();
	cin >> n >> k;
	for (int i = 0; i < n; i++)
		cin >> a[i];
	sort(a, a + n);
	ll sum = 0;
	for (int i = 0; i < n; i++)
	{
		if (i >= k - 1)
			mx[i] = (a[i] * ncr(i, k - 1)) % mod;
		if (n - i - 1 >= k - 1 && n - i > 0)
			mn[i] = (a[i] * ncr(n - i - 1, k - 1)) % mod;
	}
	for (ll i = 0; i < n; i++)
		sum += mx[i] - mn[i];
	cout << sum % mod;
}