#include #include #include using namespace std; #define DIGITS 10 string s[DIGITS]; vector< string > write; void bkt( int pos, string keys, string ans ) { if ( pos == (int) keys.size() ) { write.push_back( ans ); } else { int key = keys[pos] - '0'; for ( int i = 0; i < (int) s[key].size(); ++i ) bkt( pos + 1, keys, ans + s[key][i] ); } } int main() { for ( int i = 0; i < DIGITS; ++i ) cin >> s[i]; string keys; cin >> keys; bkt( 0, keys, "" ); sort( write.begin(), write.end() ); for ( int i = 0; i < (int) write.size(); ++i ) cout << write[i] << "\n"; }