#include #include #include #include using namespace std; int n; char s[15][100]; int st[100], nr[15]; set h; void back (int k) { if (!('0' <= s[0][k] && s[0][k] <= '9')) { string str; for (int i = 1; i <= k - 1; i ++) { str += s[s[0][i] - '0' + 1][st[i]]; // printf ("%c", s[s[0][i] - '0' + 1][st[i]]); } // printf ("\n"); h.insert (str); return ; } int i; for (i = 1; i <= nr[s[0][k] - '0' + 1]; i ++) { st[k] = i; back (k + 1); } } int main () { #ifndef ONLINE_JUDGE freopen ("mind1.in", "r", stdin); freopen ("mind1.out", "w", stdout); #endif n = 10; int i; for (i = 1; i <= 10; i ++) { gets (s[i] + 1); nr[i] = strlen (s[i] + 1); } gets (s[0] + 1); back (1); for (set :: iterator it = h.begin(); it != h.end(); it ++) puts ((*it).c_str()); return 0; }