#include <cstdio>
#define int long long
using namespace std;
const int N=1e6+50,mod=998244353,n6=166374059;
int n,k,a[N];
long long ans;
long long S(long long x){return (x*(x+1)%mod*(2*x+1)%mod*n6)%mod;}
signed main() {
scanf("%lld%lld",&n,&k);
for(int i=1;i<=n;i++) {
scanf("%lld",&a[i]);
if(a[i]<0) {
int m=-2*a[i]-1;
if(m>=k) ans=ans+(k*(a[i]+1)*(a[i]+1)%mod)%mod;
else ans=ans+(((m)*(a[i]+1)*(a[i]+1)%mod+(S(a[i]+k)-S(a[i]+m)+mod)%mod)%mod)%mod;
}
else ans=(ans+(S(a[i]+k)-S(a[i])+mod)%mod)%mod;
}
printf("%lld",ans%mod);
}
关注为报,谢谢dalao