#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const ll mod = 1000000007; const ll INF = (ll)1000000007 * 1000000007; typedef pair P; #define rep(i,n) for(int i=0;i=0;i--) #define Rep(i,sta,n) for(int i=sta;i=sta;i--) typedef long double ld; const ld eps = 1e-8; const ld pi = acos(-1.0); typedef pair LP; int dx[4]={1,-1,0,0}; int dy[4]={0,0,1,-1}; templatebool chmax(T &a, const T &b) {if(abool chmin(T &a, const T &b) {if(b> n >> S; int m=S.length(); Rep(i,1,10) cin >> c[i]; if(mn){ cout << -1 << endl; return; } rep(j,m){ rep(i,10){ cnt[i][j+1]+=cnt[i][j]+(S[j]-'0'==i); } } per(j,m){ bool fg=true; rep(i,10){ if(cnt[i][j]>c[i]) { fg=false; break; } } if(!fg) continue; //cout << j << endl; Rep(i,S[j]-'0'+1,10){ if(c[i]-cnt[i][j]>=1){ rep(k,j) cout << S[k]; cout << i; Rep(l,1,10){ rep(k,c[l]-cnt[l][j]-(l==i)) cout << l; } cout << "" << endl; return; } } } cout << -1 << endl; } int main(){ ios::sync_with_stdio(false); cin.tie(0); cout << fixed << setprecision(50); solve(); }