#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")
#pragma GCC target( \
    "sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tune=native")
using namespace std;
const int MN = 1005, MA = 100005, inf = 1000000005, mod = 998244353;
const long long INF = 1000000000000000005LL;
int B[MN];
long long dp[MN][MN];
int n, k;
long long licz_dp(int b) {
  for (int i = 1; i <= n; ++i) dp[1][i] = 1LL;
  for (int l = 2; l <= k; ++l) {
    long long suma = 0LL;
    int wsk = 1;
    for (int i = 1; i <= n; ++i) {
      while (wsk < i && B[i] - B[wsk] >= b) suma += dp[l - 1][wsk++];
      dp[l][i] = suma % mod;
    }
  }
  long long ret = 0LL;
  for (int i = 1; i <= n; ++i) ret += dp[k][i];
  return ret % mod;
}
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; ++i) scanf("%d", &B[i]);
  sort(B + 1, B + 1 + n);
  int bound = 1e5 / (k - 1) + 3;
  long long ans = 0LL;
  for (int i = 1; i <= bound; ++i) ans += licz_dp(i);
  printf("%lld", ans % mod);
}
