#include<bits/stdc++.h>
using namespace std;
const int Mod=998244353;
const int D2=998244351;
typedef long long ll;
typedef pair<int,int> pii;
#define rep(i,a,b) for(register int i=(a);i<=(b);++i)
#define per(i,a,b) for(register int i=(a);i>=(b);--i)
int m,n;
#define cout cerr
#define Maxn 20010
#define FR first
#define SE second
int b[Maxn];

namespace modular{
	int add(int a,int b){return a+b>=Mod?a+b-Mod:a+b;}
	int dec(int a,int b){return a-b<0?a-b+Mod:a-b;}
	int mul(int a,int b){return 1ll*a*b%Mod;}
	int Fast_Pow(int a,int b){
		int res=1;
		while(b){
			if(b&1)res=1ll*res*a%Mod;
			a=1ll*a*a%Mod;
			b>>=1;
		}
		return res;
	}
}using namespace modular;

int calc(int a){
	int A=0,B=1;
	for(register int i=a-1;i>=0;--i){
		A=A+B>=Mod?A+B-Mod:A+B;
		A=1ll*A*(2*n-i)%Mod;
		B=1ll*B*(n-i)%Mod;
	}
	return mul(A,Fast_Pow(B,Mod-2));
}

inline void rd(int &x){
	x=0;char ch=getchar();int f=1;
	while(ch<'0'||ch>'9'){
		if(ch=='-')f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		x=x*10+ch-'0';
		ch=getchar();
	}
	x*=f;
}

int main(){
	rd(m);
	rep(i,1,m)rd(b[i]),n+=b[i];
	int res=calc(n);
	rep(i,1,m)res=dec(res,calc(b[i]));
	printf("%d\n",res);
	return 0;
}