#include<bits/stdc++.h>
using namespace std;
int n,k;
const int N = 1e6 + 10;
int f[N];
const int mod = 998244353;
int ans;
int squ;
int pre[N],pre2[N];
int main(){
scanf("%d%d",&n,&k);
for(int i = 1;i <= n;i++){
scanf("%d",&f[i]);
pre[i] = (pre[i - 1] + f[i]) % mod;
squ = (squ + f[i] * f[i]) % mod;
}
int tag = 1;
for(int _ = 1;_ <= k;_++){
while(abs(f[tag] + 1) > abs(f[tag] + _)) tag++;//i < tag放于+1,i > tag放于+_
ans = (ans + squ + tag - 1 + 2 * pre[tag - 1] % mod + _ * _ * (n - tag + 1) % mod + 2 * _ * (pre[n] - pre[tag - 1]) % mod) % mod;
}
printf("%d",ans);
}