#include #include #include char x[500010]; std::vector ans; int c[110],b; int func(int k) { if(k<1) return 0; int digit = x[b-k+1]-'0'; if(c[digit]>0) { ans.push_back(digit); c[digit]--; int t = func(k-1); if(t==1) return 1; c[digit]++; ans.pop_back(); } for(int i=digit+1;i<=9;i++) { if(c[i]>0) { ans.push_back(i); c[i]--; for(int j=1;j<=9;j++) while(c[j]--) ans.push_back(j); return 1; } } return 0; } int main() { int a; scanf("%d",&a); scanf("%s",x+1); b = strlen(x+1); for(int i=1;i<=9;i++) scanf("%d",&c[i]); if(b>a) printf("-1"); else if(b