#define MOD 1000000007
#pragma GCC target("popcnt")
#include <bits/stdc++.h>
#include <numeric>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;
const int N=1000001;
int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	int l,r;
	int64_t ans{0};
	array < bool , N > prime;
	array < int , N > mob;
	vector < int > primes;
	cin>>l>>r;
	prime.fill(true);
	prime[0]=prime[1]=false;
	for(int64_t i=2; i<prime.size(); ++i){
		if(prime[i]){
			primes.push_back(i);
			mob[i]=-1;
		}
		for(int j=0; j<primes.size()&&i*primes[j]<prime.size(); ++j){
			prime[i*primes[j]]=false;
			if(i%primes[j]==0){
				mob[i*primes[j]]=0;
				break;
			}
			else{
				mob[i*primes[j]]=mob[i]*mob[primes[j]];
			}
		}
	}
	for(int i=max(l,2); i<=r; ++i){
		ans-=2*(r/i)-1;
	}
	for(int i=r; i>0; --i){
		int64_t c=r/i-(l-1)/i;
		ans-=mob[i]*c*c;
	}
	cout<<ans<<endl;
}

#include<iostream>
#include<math.h>
#include<iomanip>
#include<vector>
#include<algorithm>
#include<queue>
#include<string>
#include<stdlib.h>
#include<stack>
using namespace std;
#define PI 3.14159265358979
typedef  long long ll;
#define rep(i,n) for(int i=0;i<n;i++)
#include<set>

char s[501][501];

int main(void)
{

    
    int h;
    int w;
    cin>>h>>w;

    rep(i,h)
    {
        string ss;
        cin>>ss;
        rep(j,w) s[i][j]= ss[j];

    }

    ll ans =1;
    //対称性チェック
    //1色，矛盾，なしのどれか
    for(int i=0;i<w;i++)
    {
        //cout<<i<<endl;
        bool r = false;
        bool b = false;
        
        for(int j=0;i-j>=0&&j<=h;j++)
        {
            
            if(s[j][i-j]=='B') b= true;
            if(s[j][i-j]=='R') r = true;
            
        }

        if(b==true&&r==true)
        {
            cout<<0<<endl;
            return 0;
        }
        else if(b==false&&r==false)
        {
            ans *=2;
            ans %=998244353;
        }
    }

    int ii=1;
    while(ii<h)
    {
        bool r = false;
        bool b = false;
        
        for(int j=0;ii+j<h&&w-j-1>=0;j++)
        {
            
            if(s[ii+j][w-1-j]=='B') b= true;
            if(s[ii+j][w-1-j]=='R') r = true;

            //cout<<w-1-j<<' '<<i+j<<endl;
            
        }

        if(b==true&&r==true)
        {
            cout<<0<<endl;
            return 0;
        }
        else if(b==false&&r==false)
        {
            ans *=2;
            ans %=998244353;
        }
        ii++;
    }



    cout<<ans%998244353<<endl;

}