#include <bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;}
inline void write(int x){if (x < 0) x = ~x + 1, putchar('-');if (x > 9) write(x / 10);putchar(x % 10 + '0');}
inline void writeln(int x){write(x);putchar('\n');}
inline void writesp(int x){write(x);putchar(' ');}
const int mod=998244353;
int a[1000005],ans;
int sq(int x){return x*x%mod;}
signed main()
{
int n=read(),k=read(),neg=0,pos=0,sum,sqsum=0;
for(int i=1;i<=n;i++)
{
a[i]=read();
if(a[i]<0) neg=(neg+sq(a[i]+1)%mod)%mod;
else
{
pos++;
sqsum=(sqsum+sq(a[i])%mod)%mod;
}
a[i]+=a[i-1];
a[i]%=mod;
}
sum=(a[n]-a[n-pos])%mod;
sum=(sum+mod)%mod;
for(int i=1;i<=k;i++)
{
int q=neg%mod+sqsum%mod+(i*2*sum)%mod+sq(i)*pos%mod;
ans=(ans+q%mod)%mod;
}
writeln(ans%mod);
return 0;
}