#include #include #include #include #include #include #include using namespace std; using mint=atcoder::modint998244353; setnaive(int N) { setret,vis; queueQ; { string fst(N,'?'); Q.push(fst); vis.insert(fst); } while(!Q.empty()) { string s=Q.front();Q.pop(); bool fn=false; for(int i=0;i=0&&s[l]==vc)l--; if(l>=0&&s[l]==c) for(int k=l;k=1)nk=0; else nk++; } if(nk<2)dp[i+1][nj][nk][nl]+=dp[i][j][k][l]; } if(S[i]!='o') { int nj=1; int nk=k,nl=l; if(j==nj)nl=min(nl+1,2); else { nl=0; if(l==1&&k==1); else if(l>=1)nk=0; else nk++; } if(nk<2)dp[i+1][nj][nk][nl]+=dp[i][j][k][l]; } } } mint ans=0; for(int j=0;j<2;j++)for(int k=0;k<3;k++)for(int l=0;l<3;l++)ans+=dp[N][j][k][l]; return ans; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); for(int N=1;N<=0;N++) { auto t=naive(N); cout<<"N = "<>j&1?'x':'o'; mint v=solve(s); if(v.val()==0&&t.find(s)==t.end())continue; if(v.val()==1&&t.find(s)!=t.end())continue; cout<>N>>S; cout<