#include #include using namespace std; const int C=100005, D=20, E=30; long long dv[C], pw[C], v[E]; bool possible[D][C][E]; long long valid[D][C][E], invalid[D][C]; long long used_value[D]; int main(){ long long i, j, jj, ij, n, m, p, exp, w, value; string s; char e, one_char; bool invalidos; //Powers dv[1]=1; for (i=2; i0 && dv[i]==dv[i/dv[i]]) pw[i]=pw[i/dv[i]]+1; } cin>>n; cin>>s; cin>>m; for (i=0; i>e>>w; v[e-65]=w; } p=dv[n], exp=pw[n]; value=1; for (j=0; j<=exp; j++){ for (i=0; i=0; j--){ for (i=0; i invalid[j][i]) invalid[j][i]=valid[j][i][jj]; } } } /* for (j=0; j<=exp; j++){ for (i=0; i