#include<bits/stdc++.h>
using namespace std;

const int maxn=200005;
const int mod=998244353;
int n,k,p,ip,ans;
int a[maxn],pw[maxn],ipw[maxn];

int power(int x,int pow){
	int res=1;
	for(;pow;pow>>=1){
		if(pow&1)res=1LL*res*x%mod;
		x=1LL*x*x%mod;
	}
	return res;
}

class Fenwick{
public:
	int t[maxn];
	void add(int v,int val){
		for(;v<=n;v+=(v&-v)){
			t[v]+=val;
			if(t[v]>=mod)t[v]-=mod;
		}
	}
	int qry(int v){
		int res=0;
		for(;v;v-=(v&-v)){
			res+=t[v];
			if(res>=mod)res-=mod;
		}
		return res;
	}
}Cnt,Sum;

int main(){
	scanf("%d%d",&n,&k);
	ans=1LL*(n-k)*(k-1)%mod*(mod+1)/2%mod;
	ans=(ans+1LL*k*(k-1)%mod*power(4,mod-2))%mod;
	p=1LL*(k-1)*power(k,mod-2)%mod;
	ip=power(p,mod-2);
	pw[0]=ipw[0]=1;
	for(int i=1;i<=n;i++)
		pw[i]=1LL*pw[i-1]*p%mod,ipw[i]=1LL*ipw[i-1]*ip%mod;
	for(int i=1;i<=n;i++)scanf("%d",&a[i]);
	for(int i=n-1;i>=k;i--){
		Cnt.add(a[i+1],1);
		Sum.add(a[i+1],pw[i+1]);
		ans=(ans+Cnt.qry(a[i]))%mod;
		ans=(ans+1LL*(mod-Sum.qry(a[i]))*ipw[i])%mod;
	}
	for(int i=k-1;i>=1;i--){
		ans=(ans+Cnt.qry(a[i]))%mod;
		ans=(ans+1LL*(mod-Sum.qry(a[i]))*ipw[k])%mod;
	}
	printf("%d\n",ans);
	return 0;
}