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

const int N=1e5+20,MOD=1e9+7;

int n,k,a[N],f[N],ie[N],ans;

int power(int a,int b)
{
	int num=a,ans=1;
	for(int i=0;i<31;i++)
	{
		if(b&(1<<i)) ans=(1ll*ans*num)%MOD;
		num=(1ll*num*num)%MOD;
	}
	return ans;
}

int inverse_euler(int n)
{
	return power(n,MOD-2);
}

int ncr(int n,int r)
{
	return (1LL*f[n]*((1LL*ie[r]*ie[n-r])%MOD))%MOD;
}

void precompute()
{
	f[0]=1;
	for(int i=1;i<N;i++) f[i]=(1LL*f[i-1]*i)%MOD;
	for(int i=0;i<N;i++) ie[i]=inverse_euler(f[i]);
}

void sub(int &a,int b)
{
	a=(a-b)%MOD;
	if(a<0) a+=MOD;
}

void add(int &a,int b)
{
	a=(a+b)%MOD;
}

int main()
{
	precompute();

	scanf("%d%d",&n,&k);
	for(int i=0;i<n;i++) scanf("%d",&a[i]);

	sort(a,a+n);
	for(int i=0;i<n;i++)
	{
		if(i+k<=n) sub(ans,(1ll*a[i]*ncr(n-i-1,k-1))%MOD);
		if(i>=k-1) add(ans,(1ll*a[i]*ncr(i,k-1))%MOD);
	}
	printf("%d",ans);
}