#include #include #include using namespace std; using ll = long long; #include using mint = atcoder::modint998244353; int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int n,m; cin>>n>>m; vector s(n); for(int i = 0;i>s[i]; vector> use; vector> vis(n,vector(m,0)); for(int i = 0;i=n||nj<0||nj>=m) break; vis[ni][nj]++; if(s[ni][nj]=='W') a++; else if(s[ni][nj]=='B') b++; else c++; ni++;nj--; } vector now; now.push_back(a); now.push_back(b); now.push_back(c); use.push_back(now); } } vector fac(1001,1),ifac(1001); for(int i = 1;i<=1000;i++) fac[i] = fac[i-1] * i; for(int i = 0;i<=1000;i++) ifac[i] = fac[i].inv(); int k = use.size(); vector>> dp(k+1,vector>(2,vector(2,0))); dp[0][0][0] = 1; for(int i = 0;i