#include <cstdio>
using namespace std;
#define KMAX 100000
#define SUMMAX 500000
#define P 998244353
int num[KMAX];
long long jie[SUMMAX+1];
long long quick_pow_mod(long long a,long long x){
long long tmp;
a%=P;
if(!x)return 1;
else{
tmp=quick_pow_mod(a,x/2)%P;
if(x%2)return (((tmp*tmp)%P)*a)%P;
else return (tmp*tmp)%P;
}
}
long long div(long long a,long long b){
return ((a%P)*quick_pow_mod(b,P-2))%P;
}
long long c(long long n,long long m){
return div(jie[n],(jie[n-m]*jie[m])%P);
}
int main(){
int k;
long long ans=1,sum;
int i;
freopen("asm_formation.in","r",stdin);
freopen("asm_formation.out","w",stdout);
scanf("%d",&k);
for(sum=i=0;i<k;i++){
scanf("%d",num+i);
sum+=num[i];
}
jie[0]=1;
for(i=1;i<=sum;i++)
jie[i]=(jie[i-1]*i)%P;
sum=num[0];
for(i=1;i<k;i++){
ans=(ans*c(sum+1,num[i]-1))%P;
sum+=num[i];
}
printf("%lld\n",ans);
return 0;
}