func_code_string: #include <bits/stdc++.h>   using namespace std;   const int Maxn = 2e5 + 10;   long long Inf = 1e18;   const int Log = 20;   const long long Sqrt = 1000000;   const long long Mod = 998244353LL;   long long mul(long long a, long long b) {     a %= Mod;     b %= Mod;     return (a * b) % Mod;   }   long long bin_pow(long long b, long long p) {     long long res = 1;     for (long long j = 1, pw = b; j <= p; j <<= 1, pw = mul(pw, pw))       if (p & j) res = mul(res, pw);     return res;   }   long long a[Maxn];   long long X = 110000;   long long cnt[Maxn];   long long dp[1010][1010];   long long ps[1010][1010];   int main() {     ios::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     long long n, k;     cin >> n >> k;     for (int i = 1; i <= n; i++) cin >> a[i];     a[0] = -10000000;     sort(a + 1, a + n + 1);     long long mx = X / max(1LL, (k - 1));     for (int i = 1; i <= mx; i++) {       for (int ii = 1; ii <= n; ii++)         for (int j = 1; j <= k; j++) dp[ii][j] = 0, ps[ii][j] = 0;       long long p1 = 0;       dp[0][0] = 1;       ps[0][0] = 1;       for (int j = 1; j <= n; j++) ps[j][0] = 1;       for (int j = 1; j <= n; j++) {         while (a[p1] + i <= a[j]) {           p1++;         }         p1--;         for (int K = 1; K <= k; K++) {           dp[j][K] = ps[p1][K - 1];           ps[j][K] = (ps[j - 1][K] + dp[j][K]) % Mod;         }         cnt[i] += dp[j][k];         cnt[i] %= Mod;       }     }     long long ans = 0;     for (int i = 1; i <= mx; i++) {       ans += mul(i, cnt[i] - cnt[i + 1]);       ans %= Mod;     }     ans += Mod;     cout << ans % Mod;     return 0;   }   