#include<iostream> #include<fstream> #include<algorithm> #include<cstring> #include<vector> #include<string> #include<queue> #define in cin #define out cout #define abs(x) ((x>0)?(x):(-(x))) #define max(a, b) (a > b ? a : b) #define min(a, b) (a < b ? a : b) #define FOR(i, a, b) for(int i = a; i <= b; ++i) #define DOWNFOR(i, a, b) for(int i = a; i >= b; --i) #define FOREACH(i, t) for (typeof(t.begin()) i = t.begin(); i != t.end(); ++i) #define ll long long using namespace std; char s[100][100]; char a[100]; int size[100]; int N; int t[100]; int v[100]; void back(int i){ if(i>N){ out<<'\n'; return; } for(v[i]=0;v[i]<=size[t[i]]-1;v[i]++){ out<<s[t[i]][v[i]]; back(i+1); } } int main(){ #ifndef ONLINE_JUDGE ifstream in("test.in"); ofstream out("test.out"); #endif FOR(i,0,9){ in.getline(s[i],100); size[i]=strlen(s[i]); sort(s[i],s[i]+size[i]); } in.getline(a,100); for(int i=0;i<strlen(a);i++){ t[++N]=int(a[i])-'0'; } back(1); return 0; }