/*Code by HsonW, 11/2 NH-Hue. Just a newbie <3*/
/*tai vi anh yeu duoi*/
#include<bits/stdc++.h>
using namespace std;
using int64=long long;
#define ll long long
const int MOD=998244353;
const int MAX=1e6+100;
typedef pair<int,int> ii;
int add(int a,int b){a+=b;if(a>=MOD)a-=MOD;return a;}
int mul(long long a,long long b){ return int((a*b)%MOD);}
signed main(){
#define name "HsonW"
ios::sync_with_stdio(0);
cin.tie(NULL);
if(fopen(name ".inp", "r")){
freopen(name ".inp", "r", stdin);
freopen(name ".out", "w", stdout);
}
int n,k;
cin >>n>>k;
vector<int>a(n);
for(int &x:a) cin >>x;
sort(a.begin(),a.end());
int maxd=(a[n-1]-a[0])/(k-1);
ll ans=0;
vector<int>preok(n),dp(n),pref(n);
for(int t=1;t<=maxd;t++){
int p=0;
for(int i=0;i<n;i++){
while(p<i && a[i]-a[p]>=t) p++;
preok[i]=p-1;
}
for(int i=0;i<n;i++){
dp[i]=1;
pref[i]=(i>0 ? add(pref[i-1],dp[i]):dp[i]);
}
for(int j=2;j<=k;j++){
vector<int>newdp(n),newpref(n);
for(int i=0;i<n;i++){
int mx=preok[i];
if(mx>=0) newdp[i]=pref[mx];
else newdp[i]=0;
newpref[i]=(i>0 ? add(newpref[i-1],newdp[i]):newdp[i]);
}
dp.swap(newdp);
pref.swap(newpref);
}
int ct=0;
for(int i=0;i<n;i++){
ct=add(ct,dp[i]);
}
ans=(ans+ct)%MOD;
}
cout <<ans;
}
LypDb2RlIGJ5IEhzb25XLCAxMS8yIE5ILUh1ZS4gSnVzdCBhIG5ld2JpZSA8MyovCi8qdGFpIHZpIGFuaCB5ZXUgZHVvaSovCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGludDY0PWxvbmcgbG9uZzsKI2RlZmluZSBsbCBsb25nIGxvbmcKY29uc3QgaW50IE1PRD05OTgyNDQzNTM7CmNvbnN0IGludCBNQVg9MWU2KzEwMDsKdHlwZWRlZiBwYWlyPGludCxpbnQ+IGlpOwppbnQgYWRkKGludCBhLGludCBiKXthKz1iO2lmKGE+PU1PRClhLT1NT0Q7cmV0dXJuIGE7fQppbnQgbXVsKGxvbmcgbG9uZyBhLGxvbmcgbG9uZyBiKXsgcmV0dXJuIGludCgoYSpiKSVNT0QpO30Kc2lnbmVkIG1haW4oKXsKICAgICNkZWZpbmUgbmFtZSAiSHNvblciCiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICBpZihmb3BlbihuYW1lICIuaW5wIiwgInIiKSl7CiAgICAgICAgZnJlb3BlbihuYW1lICIuaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbihuYW1lICIub3V0IiwgInciLCBzdGRvdXQpOwogICAgfQogICAgaW50IG4sazsKICAgIGNpbiA+Pm4+Pms7CiAgICB2ZWN0b3I8aW50PmEobik7CiAgICBmb3IoaW50ICZ4OmEpIGNpbiA+Png7CiAgICBzb3J0KGEuYmVnaW4oKSxhLmVuZCgpKTsKICAgIGludCBtYXhkPShhW24tMV0tYVswXSkvKGstMSk7CiAgICBsbCBhbnM9MDsKICAgIHZlY3RvcjxpbnQ+cHJlb2sobiksZHAobikscHJlZihuKTsKICAgIGZvcihpbnQgdD0xO3Q8PW1heGQ7dCsrKXsKICAgICAgICBpbnQgcD0wOwogICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgICAgICB3aGlsZShwPGkgJiYgYVtpXS1hW3BdPj10KSBwKys7CiAgICAgICAgICAgIHByZW9rW2ldPXAtMTsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgICAgIGRwW2ldPTE7CiAgICAgICAgICAgIHByZWZbaV09KGk+MCA/IGFkZChwcmVmW2ktMV0sZHBbaV0pOmRwW2ldKTsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBqPTI7ajw9aztqKyspewogICAgICAgICAgICB2ZWN0b3I8aW50Pm5ld2RwKG4pLG5ld3ByZWYobik7CiAgICAgICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgICAgICAgICAgaW50IG14PXByZW9rW2ldOwogICAgICAgICAgICAgICAgaWYobXg+PTApIG5ld2RwW2ldPXByZWZbbXhdOwogICAgICAgICAgICAgICAgZWxzZSBuZXdkcFtpXT0wOwogICAgICAgICAgICAgICAgbmV3cHJlZltpXT0oaT4wID8gYWRkKG5ld3ByZWZbaS0xXSxuZXdkcFtpXSk6bmV3ZHBbaV0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRwLnN3YXAobmV3ZHApOwogICAgICAgICAgICBwcmVmLnN3YXAobmV3cHJlZik7CiAgICAgICAgfQogICAgICAgIGludCBjdD0wOwogICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgICAgICBjdD1hZGQoY3QsZHBbaV0pOwogICAgICAgIH0KICAgICAgICBhbnM9KGFucytjdCklTU9EOwogICAgfQogICAgY291dCA8PGFuczsKICAgIAp9