func_code_string: #include <bits/stdc++.h>   using namespace std;   #define ll long long   #define f(i, x, n) for (int i = x; i < (int)(n); ++i)   const int N = 1e6 + 10, mod = 998244353;   const double eps = 1e-7;      inline int add(int a, int b) { return a + b >= mod ? a + b - mod : a + b; }   inline int mul(int a, int b) { return (ll)a * b % mod; }      int n;   string s;      ll fact[1000001], inv[1000001];// mod inv = n ^ mod-2   ll FastPower(int a, int b)   {       if(b == 0)           return 1;       ll res = FastPower(a, b/2);       if(b%2)           return res * res % mod * a % mod;       return res * res % mod;   }   ll nCk(int n, int k)   {    if(n < k)     return 0;       return fact[n] * inv[k] % mod * inv[n-k] % mod;   }      int main()   {    ios_base::sync_with_stdio(0);    cin.tie(0);   #ifndef ONLINE_JUDGE    freopen( input.txt ,  r , stdin);   #endif       fact[0] = 1;       inv[0] = FastPower(1, mod-2);       for(int i=1; i<=1000000; ++i)       {           fact[i] = fact[i-1] * i % mod;           inv[i] = FastPower(fact[i], mod-2);       }    int t;    cin >> t;    while(t--)       {     cin >> n >> s;     vector<int> a;     for(int i=0; i<n; ++i){      if(i < n-1 && s[i] ==  1  && s[i+1] ==  1 ){       a.push_back(2);       ++i;       continue;      }      a.push_back(s[i]- 0 );     }     n = a.size();     ll ans = 1;     int space = 0, nof2 = 0;     for(int i=0; i<n; ++i){      //cout << a[i] <<    ;      nof2 += a[i] == 2;      space += a[i] == 0;     }     ans = nCk(nof2+space, space);     cout << ans <<   n ;       }          }