//Code by Patcas Csaba #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define PII pair #define VB vector #define VI vector #define VD vector #define VS vector #define VPII vector > #define VVI vector < VI > #define VVB vector < VB > #define FORN(i, n) for(int i = 0; i < (n); ++i) #define FOR(i, a, b) for(int i = (a); i <= (b); ++i) #define FORD(i, a, b) for(int i = (a); i >= (b); --i) #define REPEAT do{ #define UNTIL(x) }while(!(x)); #define SZ size() #define BG begin() #define EN end() #define CL clear() #define X first #define Y second #define RS resize #define PB push_back #define MP make_pair #define ALL(x) x.begin(), x.end() #define IN_FILE "a.in" #define OUT_FILE "a.out" FILE *stream1, *stream2; VS a(10); string s; VI ss(10), ind; void Back(int sp) { if (sp == s.SZ) { FOR(i, 0, sp - 1) cout << a[ind[i]][ss[i]]; cout << endl; return; } FOR(i, 0, a[ind[sp]].SZ - 1) { ss[sp] = i; Back(sp + 1); } } int main() { //Read data //freopen_s(&stream1, IN_FILE, "r", stdin); //freopen_s(&stream2, OUT_FILE, "w", stdout); //Solve FOR(i, 0, 9) { getline(cin, a[i]); sort(ALL(a[i])); } getline(cin, s); ind.RS(s.SZ); FOR(i, 0, s.SZ - 1) ind[i] = s[i] - '0'; Back(0); //Write data return 0; }