#include <bits/stdc++.h>
using namespace std;
#define int long long
const int MOD=998244353;

int dp[5000][5000];
int r,b;

signed main(){
  string s;cin>>s;
  int N=s.size();
  /*
  どんなのなら作れるかを考えるタイプ
  1個目は1人目が持っているやつ
  2個目は前2人が持っているやつ（ただし1個目で使われたやつは無理）
  dp[i]:現在赤のボールをi個使っている時の場合の数
  dp[i][j]:i個目のボールを配って赤いボールをj個消費した時の場合の数
  */
  dp[0][0]=1;
  for(int i=1;i<=2*N;i++){
    if(i<=N){
      if(s[i-1]=='0')r+=2;
      if(s[i-1]=='1')r+=1,b+=1;
      if(s[i-1]=='2')b+=2;
    }
    for(int j=0;j<4005;j++){
      if(i-j<=b)dp[i][j]+=dp[i-1][j];//青いボールを配る
      if(j+1<=r)dp[i][j+1]+=dp[i-1][j];//赤いボールを配る
      dp[i][j]%=MOD;dp[i][j+1]%=MOD;
    }
  }
  cout<<dp[2*N][r]<<endl;
}
