#include<bits/stdc++.h>
using namespace std;
#define ll __int128
ll mod=998244353;
ll a[1000005],sum[1000005],n,k,summ[1000005],ans,jj,pfh[1000005];
void inline r(ll &x)
{
x=0;char c=getchar();ll f=1;
while(c<'0'||c>'9'){
if(c=='-')
f=-1;
c=getchar();
}
while(c>='0'&&c<='9')
{
x=(x<<1)+(x<<3)+(c^48);
c=getchar();
}
x*=f;
}
void inline pri(ll x)
{
if(x>=10)pri(x/10);
putchar(x%10^48);
}
int main()
{
r(n);r(k);
for(int i=1;i<=n;i++){
r(a[i]);
if(a[i]<0)sum[i]=sum[i-1]+(a[i]+1)*(a[i]+1);
if(a[i]>=0&&a[i-1]<0)jj=i-1;
}
for(int i=n;i>=1;i--)
summ[i]=summ[i+1]+a[i],pfh[i]=pfh[i+1]+a[i]*a[i];
for(ll i=1;i<=k;i++)
{
while(jj>0&&a[jj]*(ll)(-2)<=k)
jj--;
ans+=pfh[jj+1]+i*i*(n-jj)+(ll)2*i*summ[jj+1];
if(jj!=0)ans+=sum[jj];
ans%=mod;
}
pri(ans);
}