#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
const int N=2e3+10;
const int mod=998244353;
int n,dp[N<<1][N<<1],s1[N],s2[N];
char s[N];
inline void Add(int &x,int y){x+=y;x-=x>=mod? mod:0;}
int main(){
	scanf("%s",s+1);n=strlen(s+1);
	for(register int i=1;i<=n;i++)s2[i]=s[i]-'0';
	for(register int i=1;i<=n;i++)s1[i]=2-s2[i];
	for(register int i=1;i<=n;i++)s1[i]+=s1[i-1],s2[i]+=s2[i-1];
	dp[0][0]=1;
	for(register int i=1;i<=(n<<1);i++)
		for(register int j=0;j<=s2[n];j++)
			if(i-j<=s1[min(i,n)]&&j<=s2[min(i,n)])
				Add(dp[i][j],dp[i-1][j-1]),Add(dp[i][j],dp[i-1][j]);
	printf("%d\n",dp[n<<1][s2[n]]);
	return 0;
}