#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
  int H,W;cin>>H>>W;
  vector<vector<char>>S(H,vector<char>(W));
  for(int i=0;i<H;i++){
    for(int j=0;j<W;j++){
      cin>>S[i][j];
    }
  }
  vector<vector<int>>dp(H,vector<int>(W,0));
  for(int i=0;i<H;i++){
    for(int j=0;j<W;j++){
      if(S[i][j]=='R'){
        dp[i][j]++;
      }
      if(i!=0){
        dp[i][j]+=dp[i-1][j];
      }
      if(j!=0){
        dp[i][j]+=dp[i][j-1];
      }
    }
  }
  int ans=1;
  for(int i=0;i<=H+W-2;i++){
    char defo='-';
    for(int j=0;j<=i;j++){
      int k=i-j;
      if(j>=0&&k>=0&&j<H&&k<W){
        if(defo=='-'){
          if(S[j][k]!='.')defo=S[j][k];
        }
        else if(S[j][k]!='.'&&defo!=S[j][k]){
          cout<<0<<endl;
          return 0;
        }
      }
    }
    if(defo=='-'){
      ans*=2;
      ans%=998244353;
    }
  }
  cout<<ans<<endl;
  
}
#include <bits/stdc++.h>
int main() {
	using std::cin;
	using std::string;
	using std::vector;
	int h, w;
	cin >> h >> w;
	vector<string> s (h);
	for (int i = 0; i < h; i++)
		cin >> s[i];
	int ans = 1;
	for (int i = 0; i <= h + w - 2; i++) {
		int b_ok = 1, r_ok = 1;
		for (int j = std::max(0, i - w + 1); j <= std::min(h - 1, i); j++) {
			if (s[j][i - j] == 'R')
				b_ok = 0;
			if (s[j][i - j] == 'B')
				r_ok = 0;
		}
		ans = ans * (b_ok + r_ok) % 998244353;
	}
	std::cout << ans << std::endl;
	return 0;
}
