#include<bits/stdc++.h>
#define int long long
#define N 300005
using namespace std;
int p=998244353,n,w[N],s[N],ans,a[25][N],sz;
int KSM(int a,int b){
int t=1;
while(b){
if(b&1)t=(t*a)%p;
b>>=1;
a=(a*a)%p;
}
return t;
}
void NTT(int n,int*a,int opt){
int i,j=0,k;
for(i=0;i<n;i++){
if(i>j)swap(a[i],a[j]);
for(int l=n>>1;(j^=l)<l;l>>=1);
}
for(i=1;i<n;i<<=1){
int wn=KSM(3,(p-1)/(i<<1)),m=i<<1;
for(j=0;j<n;j+=m){
int w=1;
for(k=0;k<i;k++,w=(w*wn)%p){
int z=(a[j+i+k]*w)%p;
a[i+j+k]=(a[j+k]-z+p)%p;
a[j+k]=(a[j+k]+z)%p;
}
}
}
if(opt==-1)reverse(a+1,a+n);
}
int HMBB(int*a,int*b,int fn){
NTT(fn,a,1);NTT(fn,b,1);
for (int i=0;i<fn;i++)a[i]=(a[i]*b[i])%p;
NTT(fn,a,-1);
}
void kdo(int ll,int rr){
if(ll==rr){
a[sz][0]=1;a[sz][w[ll]]=-1;sz++;
return;
}
int mid=(ll+rr)/2,fn=1;
kdo(ll,mid);kdo(mid+1,rr);
while(fn<=s[rr]-s[ll-1])fn<<=1;
HMBB(a[sz-2],a[sz-1],fn);
int ss=0;do{a[sz-1][ss]=0;ss++;}while(a[sz-1][ss]!=-1);
sz--;
}
signed main(){
scanf("%lld",&n);
for (int i=1;i<=n;i++){
scanf("%lld",&w[i]);
s[i]=s[i-1]+w[i];
}
kdo(2,n);
for(int o=0;o<=s[n]-s[1];o++){
ans+=KSM(w[1]+o,p-2)*a[0][o]%p;
ans%=p;
}
cout<<ans*w[1]%p;
return 0;
}