#include<bits/stdc++.h>
#define ll long long
#define ld long double
#define ull unsigned long long
#define izq nod * 2
#define der nod * 2 + 1
#define md (( a + b ) >> 1)
#define oo (1LL<<30LL)
#define len(X) (int)(X).size()
using namespace std;

const ll MOD = 998244353;

const int MX = 2 * 1e5+5;

ll F[MX],iF[MX];

ll pot( ll base, ll e){
    ll ans = 1ll;
    
    while( e ){
        if( e & 1ll ) ans = (ans * base) % MOD;
        base = (base * base) % MOD;
        e>>=1ll;    
    } 
    
    return ans;  
}

int main(){
	
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	
	int t;
	cin>>t;
	
	F[0] = iF[0] = 1;
	
	for ( ll i = 1; i <= 2e5; i++ ){
	     F[i] = ( F[i-1] * i )%MOD; 
	     iF[i] = pot ( F[i], MOD-2LL );
	}
	
	while ( t-- ){
          int n;
          cin>>n;
          
          string s;
          cin>>s;
          
          int c0 = 0,c1 = 0;
          
          for ( int i = 0; i < len(s); i++ ){
		       if ( s[i] == '1' && i < len(s)-1 && s[i+1] == '1' ){ 
			       c1++; i++;
			   }
			   if ( s[i] == '0' )c0++; 
		  }
		  
		  cout<<F[c0+c1] * iF[c0] % MOD * iF[c1] % MOD<<'\n';;
          
    }
	
return 0;	
}
