最大26选13 先增后减 杨辉三角形 5e6个选法 每个凉快值即最小差=30000 取mod
#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for (int i=a;i<=n;i++)
#define pb push_back
#define mp make_pair
#define IO ios::sync_with_stdio(false)
#define fi first
#define se second
typedef long long ll;
typedef pair<int,int> pii;
const int maxn=4e5+5;
const int maxm=1e6+5;
const ll INF=0x3f3f3f3f3f3f3f3f;
const ll mod=1e9+7;
ll a[maxn],minn,maxx,pos,cnt,ans,sum;
ll n,k;
vector<ll> v;
void dfs(int now){
if(v.size()==k){
minn=INF;
for(int i=1;i<=k-1;i++){
minn=min(minn,v[i]-v[i-1]);
}
ans=(ans+minn)%mod;
return;
}
for(int i=now+1;i<=n;i++){
v.pb(a[i]);
dfs(i);
v.pop_back();
}
}
int main(){
cin>>n>>k;
rep(i,1,n){
cin>>a[i];
}
sort(a+1,a+n+1);
dfs(0);
cout<<ans<<endl;
return 0;
}