#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;
}