#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define pa pair<int,int>
const int Maxn=2010;
const int inf=2147483647;
const int mod=998244353;
void upd(int&x,int y){x+=y;if(x>=mod)x-=mod;}
char s[Maxn];int n;
int C[Maxn][Maxn],f[Maxn][Maxn];
void pre()
{
	C[0][0]=1;
	for(int i=1;i<=n;i++)
	{
		C[i][0]=1;
		for(int j=1;j<=i;j++)
		C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod;
	}
}
int main()
{
	scanf("%s",s+1);n=strlen(s+1);
	pre();
	int s1=0,s0=0;f[0][0]=1;
	for(int i=1;i<=n;i++)
	{
		int t=s[i]-'0';
		s1+=t;//1的个数
		s0+=2-t;
		for(int j=0;j<=min(s1,i);j++)
		{
			if(j)upd(f[i][j],f[i-1][j-1]);
			if(i-j<=s0)upd(f[i][j],f[i-1][j]);
//			printf("%d %d %d\n",i,j,f[i][j]);
		}
	}
	int ans=0;
	for(int i=0;i<=min(s1,n);i++)upd(ans,(LL)f[n][i]*C[n][s1-i]%mod);
	printf("%d",ans);
}
