#include <bits/stdc++.h>
using namespace std;
namespace Raiden
{
const int N = 1002;
const int mod = 998244353;
int n, k, a[N];
int dp[N][N], ans;
int solve(const int x)
{
int u = 0;
dp[0][0] = 1;
for (int i = 1; i <= n; i++)
{
while (a[i] - a[u + 1] >= x)
u++;
dp[i][0] = 1;
for (int j = 1; j <= k; j++)
dp[i][j] = (dp[i - 1][j] + dp[u][j - 1]) % mod;
}
return dp[n][k];
}
signed work()
{
cin >> n >> k;
for (int i = 1; i <= n; i++)
cin >> a[i];
sort(a + 1, a + n + 1);
for (int i = 1; i * (k - 1) <= a[n]; i++)
ans = (ans + solve(i)) % mod;
cout << ans << endl;
return 0;
}
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
return Raiden::work();
}
1143B - Nirvana | 1285A - Mezo Playing Zoma |
919B - Perfect Number | 894A - QAQ |
1551A - Polycarp and Coins | 313A - Ilya and Bank Account |
1469A - Regular Bracket Sequence | 919C - Seat Arrangements |
1634A - Reverse and Concatenate | 1619C - Wrong Addition |
1437A - Marketing Scheme | 1473B - String LCM |
1374A - Required Remainder | 1265E - Beautiful Mirrors |
1296A - Array with Odd Sum | 1385A - Three Pairwise Maximums |
911A - Nearest Minimums | 102B - Sum of Digits |
707A - Brain's Photos | 1331B - Limericks |
305B - Continued Fractions | 1165B - Polycarp Training |
1646C - Factorials and Powers of Two | 596A - Wilbur and Swimming Pool |
1462B - Last Year's Substring | 1608B - Build the Permutation |
1505A - Is it rated - 2 | 169A - Chores |
765A - Neverending competitions | 1303A - Erasing Zeroes |