#include #include #include using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf 1000000000000000000 using Data = array; string S; int N; Data MAX(Data a,Data b){ Data ret; rep(i,3)ret[i] = 0; rep(i,3){ rep(j,3){ ret[max(i,j)] += a[i] * b[j]; } } return ret; } Data MEX(Data a,Data b){ Data ret; rep(i,3)ret[i] = 0; rep(i,3){ rep(j,3){ if(i!=0&&j!=0){ ret[0] += a[i]*b[j]; } else if(i!=1&&j!=1){ ret[1] += a[i]*b[j]; } else{ ret[2] += a[i]*b[j]; } } } return ret; } Data eq(int &pos){ char c; if(S[pos]=='m'){ c = S[pos+1]; pos += 3; pos++; Data x = eq(pos); pos++; Data y = eq(pos); pos++; Data ret; rep(i,3){ ret[i] = 0; } /* cout<>S; int K; cin>>K; N = S.size(); int pos = 0; Data ans = eq(pos); cout<