func_code_string: #include<bits/stdc++.h>   using namespace std;   #define sfd(x) scanf( %d ,&x)   #define sfd2(x,y) scanf( %d%d ,&x,&y)   #define sfd3(x,y,z) scanf( %d%d%d ,&x,&y,&z)   #define sfs(x) scanf( %s ,x)   #define sfll(x) scanf( %lld ,&x)   #define sfll2(x,y) scanf( %lld%lld ,&x,&y)   #define pfd(x) printf( %d ,x)   #define pfs(x) printf( %s ,x)   #define pfll(x) printf( %lld ,x)   #define nl printf(  n )   #define sp printf(   )   #define pfyes printf( YES )   #define pfno printf( NO )   #define pf0 printf( 0 )   #define FOR(i,a,b,in) for(int i=a;i<=b;i+=in)   #define RFOR(i,a,b,de) for(int i=a;i>=b;i-=de)   #define rep(i,n) for(int i=0;i<n;i++)   #define pb push_back   #define mkp make_pair   #define mod 998244353   typedef long long int ll;   typedef vector<int> vi;   typedef pair<int,int> pii;   // ------------------------//   ll power(long long x, int y, int p)   {       ll res = 1;     x = x % p;       if (x == 0) return 0;      while (y > 0)       {           if (y & 1)               res = (res*x) % p;           y = y>>1;            x = (x*x) % p;       }       return res;   }   int main()   {    int t;    sfd(t);    while(t--)    {     int n;     sfd(n);     char s[n+1];     sfs(s);     int c0 = 0;     int c1 = 0;     int cx = 0;     rep(i,n)     {      if(s[i]== 1 )      {       cx+=1;      }      else      {       c1+=(cx/2);       cx=0;       c0+=1;      }     }     c1+=(cx/2);     ll v1=1,v2=1,v3=1;     for(int i=1;i<=c0;i++)     {      v1=(v1*i)%mod;     }     for(int i=1;i<=c1;i++)     {      v2=(v2*i)%mod;     }     for(int i=1;i<=c0+c1;i++)     {      v3=(v3*i)%mod;     }     v1=(v1*v2)%mod;     ll ans = (v3*power(v1,mod-2,mod))%mod;     pfll(ans);     nl;         }    return 0;   }