#define MD 998244353
ll@n,p=0,s=0,b=0,v=0,m[2]{},t[2][1010]{};
rep(n){
	ll@a;
	s+=a;
	b=a-b;
	t[p][m[p]]+=b+1>>1;
	t[p^1][m[p^1]]+=b>>1;
	p^=~b&1;
	m[p^1]+=1;
	b=a;
}
Mint z=1;
rep(k,2){
	ll s=0,u=0,a[1010]{};
	rep(i,m[k]){
		v+=u+=t[k][i];
		rrep(j,u){
			z*=++a[j]+u-j-1;
		}
	}
}
z=(2v==s)/z;
rep(i,v){
	z*=i+1;
}
wt(z);