#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
long long f_pow(long long a, long long b) {
  long long res = 1, temp = a;
  while (b) {
    if (b & 1) res = res * temp % mod;
    temp = temp * temp % mod;
    b >>= 1;
  }
  return res;
}
long long s[200005];
long long sum[200005];
void add(long long first, long long k, long long *S) {
  for (int i = first; i < 200005; i += i & -i) {
    S[i] += k;
    S[i] %= mod;
  }
}
long long query(long long first, long long *S) {
  long long res = 0;
  for (int i = first; i > 0; i -= i & -i) {
    res += S[i];
  }
  return res % mod;
}
void solve() {
  int n, k;
  scanf("%d %d", &n, &k);
  long long ans = 0;
  long long aa = (k - 1) * f_pow(k, mod - 2);
  for (int i = 1; i <= n; i++) {
    int first;
    scanf("%d", &first);
    long long q1 = query(first - 1, s),
              q2 = ((query(n, s) - query(first - 1, s)) % mod + mod) % mod;
    ans += (q1 + q2) * f_pow(aa, max(i - k, 0)) % mod * ((mod + 1) / 2) % mod;
    ans += ((i - 1 - query(first, sum) - q2 * f_pow(aa, max(i - k, 0))) % mod +
            mod) %
           mod;
    ans %= mod;
    add(first, 1, sum);
    add(first, f_pow(f_pow(aa, max(i - k, 0)), mod - 2), s);
  }
  printf("%lld\n", ans);
}
int main() {
  int t = 1;
  while (t--) {
    solve();
  }
}
