#include #include #include #include #include #include using namespace std; using namespace atcoder; using mint = modint998244353; struct S{ vector bb; vector bw; vector wb; vector ww; bool isE; }; vector add(vector a,vector b){ if(a.size() c = a; for(int i=0;i bb = add(add(add(convolution(l.bb,r.wb),convolution(l.bw,r.bb)),l.bb),r.bb); // bw vector bw = add(add(add(convolution(l.bb,r.ww),convolution(l.bw,r.bw)),l.bw),r.bw); // wb vector wb = add(add(add(convolution(l.wb,r.wb),convolution(l.ww,r.bb)),l.wb),r.wb); // ww vector ww = add(add(add(convolution(l.wb,r.ww),convolution(l.ww,r.bw)),l.ww),r.ww); return {bb,bw,wb,ww}; } S e(){ vector v = {1}; return {v,v,v,v,true}; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int i,n; cin >> n; string s; cin >> s; vector v(n); vector bw = {0}; vector wb = {0}; for(i=0;i bb = {0}; vector ww = {0,1}; v[i] = {bb,bw,wb,ww}; }else{ vector bb = {0,1}; vector ww = {0}; v[i] = {bb,bw,wb,ww}; } } segtree seg(v); S ans = seg.all_prod(); vector ans2 = add(add(ans.bb,ans.bw),add(ans.wb,ans.ww)); if(ans2.size()