#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; using namespace atcoder; typedef long long ll; typedef pair P; using mint=modint998244353; string s; vector num(int& i){ vector res(3); if(s[i]=='?'){ res[0]=res[1]=res[2]=1; }else{ res[s[i]-'0']=1; } i++; return res; } int mex[3][3]={{1, 2, 1}, {2, 0, 0}, {1, 0, 0}}; vector solve(int& i){ if(s[i]=='?' || (s[i]>='0' && s[i]<='2')){ return num(i); }else{ vector res(3); i++; bool ba=0, be=0; if(s[i]=='a' || s[i]=='?'){ ba=1; } if(s[i]=='e' || s[i]=='?'){ be=1; } i++; i++; i++; auto v1=solve(i); i++; auto v2=solve(i); i++; if(ba){ for(int j=0; j<3; j++){ for(int k=0; k<3; k++){ res[max(j, k)]+=v1[j]*v2[k]; } } } if(be){ for(int j=0; j<3; j++){ for(int k=0; k<3; k++){ res[mex[j][k]]+=v1[j]*v2[k]; } } } return res; } } int main() { cin>>s; int i=0; auto v=solve(i); int k; cin>>k; cout<