#include<bits/stdc++.h>
using namespace std;

const int N=4010,mod=998244353;
char s[N];
istream& operator >> (istream&in,bitset<N>&a){
	in>>s;int n=strlen(s);a.reset();
	for(int i=0;i<n;++i)a[n-i-1]=s[i]&1;
	return in;
}
int ans,n;
bitset<N>X,Y,A,B;
int len(const bitset<N>&a){for(int i=N-1;i>=0;--i)if(a[i])return i;return -1;}
void rem(bitset<N>&a,const bitset<N>&b){
	int j=len(b);
	for(int i=N-1;i>=j;--i)if(a[i])a^=b<<(i-j);
}


int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n>>X;
	for(int i=1;i<=n;++i){
		cin>>A;
		for(;B.any();swap(A,B))rem(A,B);
		swap(A,B);
	}
	int L=len(B);
	for(int i=N-1;i>=L;--i)
		ans=(ans*2+X[i])%mod;
	rem(Y=X,B);
	for(int i=L-1;i>=0;--i)
		if(Y[i]){
			if(!X[i])--ans;
			break;
		}
	cout<<(ans+1)%mod<<'\n';
	return 0;
}
