def cmb(n, r, mod):
    if ( r<0 or r>n ):
        return 0
    r = min(r, n-r)
    return g1[n] * g2[r] * g2[n-r] % mod
N, K = map(int,input().split())
A = sorted(list(map(int,input().split())))
mod = 10**9+7 #出力の制限
g1 = [1, 1] # 元テーブル
g2 = [1, 1] #逆元テーブル
inverse = [0, 1] #逆元テーブル計算用テーブル

for i in range(2,N + 1):
    g1.append(( g1[-1] * i ) % mod)
    inverse.append((-inverse[mod % i] * (mod//i)) % mod)
    g2.append((g2[-1] * inverse[-1]) % mod)

ans = 0
MIN = N-K+1
MAX = K-1
for i in range(MIN):#MINのインデックス
    for j in range(MAX,N):#MAXのインデックス
        if j-i+1 >= K:
            ans += (A[j]-A[i])*cmb((j-i+1)-2,K-2,mod)
print(ans%mod)