import java.util.Arrays; import java.util.LinkedList; public class prog { public static void main(final String[] args) { java.util.Scanner scan = new java.util.Scanner(System.in); String[] keys = new String[10]; for (int i = 0; i < 10; i++) { char[] chars = scan.nextLine().toCharArray(); Arrays.sort(chars); keys[i] = new String(chars); } String combinationKeys = scan.nextLine(); int queuesize = 1; int currentKey; for (int i = 0; i < combinationKeys.length(); i++) { currentKey = combinationKeys.charAt(i) - '0'; queuesize = queuesize * keys[currentKey].length(); } String[] queue = new String[queuesize * combinationKeys.length() + 1]; int currentCounter = 0; int placeToAdd = 0; currentKey = combinationKeys.charAt(0) - '0'; for (int j = 0; j < keys[currentKey].length(); j++) { queue[placeToAdd] = String.valueOf(keys[currentKey].charAt(j)); placeToAdd++; } for (int i = 1; i < combinationKeys.length(); i++) { currentKey = combinationKeys.charAt(i) - '0'; int cc = currentCounter; int place = placeToAdd; for (int j = cc; j < place; j++) { String s = queue[j]; for (int k = 0; k < keys[currentKey].length(); k++) { char c = keys[currentKey].charAt(k); queue[placeToAdd] = (s + c); placeToAdd++; } } currentCounter = place; } //System.out.println("---------------"); StringBuilder sb = new StringBuilder(); for (int i = currentCounter; i < placeToAdd; i++) { System.out.println(queue[i]); sb.append(queue[i]).append("\n"); } System.out.println(sb); } }