#include<bits/stdc++.h>
using namespace std;
const int N=55;
typedef long long ll;
int n;
ll x,k[N],a[N],b[N],f[N][2];
int main()
{
    cin>>n>>x;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<n;i++) b[i]=a[i+1]/a[i];
    for(int i=n;i>=1;i--)
    {
        k[i]=x/a[i];
        x%=a[i];
    }
    if(n==1)
    {
        printf("1\n");return 0;
    }
    f[1][0]=1;
    if(k[1]!=0) f[1][1]=1;
    for(int i=2;i<n;i++)
    {
        f[i][0]=f[i-1][0];
        if(k[i]!=0) f[i][1]=f[i-1][0];
        if(k[i]!=b[i]-1)
            f[i][0]+=f[i-1][1];
        f[i][1]+=f[i-1][1];
    }
    printf("%lld\n",f[n-1][0]+f[n-1][1]);
}

#include<iostream>
#include<cstdio>
#define ll long long
using namespace std;
int H,W;
char s[10005];
int numa[10005],numb[10005],numd[100005];
int main(){
	scanf("%d%d",&H,&W);
	for(int i=1;i<=H;i++){
		cin>>s+1;
		for(int j=1;j<=W;j++){
			if(s[j]=='R') numa[i+j]++;
			if(s[j]=='.') numd[i+j]++;
			if(s[j]=='B') numb[i+j]++;
		}
	}
	ll ans=1;
	for(int i=2;i<=H+W;i++){
		if(numa[i]==0&&numb[i]==0) ans*=2;
		else{
			if(numa[i]!=0&&numb[i]!=0) ans*=0;
		}
		ans%=998244353;
	}
	printf("%lld\n",ans);
	return 0;
}