import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Scanner; import java.util.TreeMap; import java.util.regex.Pattern; public class prog { public static void main (String[] args) throws java.lang.Exception { Scanner scanner = new Scanner(System.in); String letterSeq = scanner.nextLine(); Map letterMap = new TreeMap(); for (int i = 0; i < letterSeq.length(); i++) { char c = letterSeq.charAt(i); if(letterMap.containsKey(c)){ letterMap.put(c, letterMap.get(c)+1); } else { letterMap.put(c, 1); } } int nrOfWords = scanner.nextInt(); for (int i = 0; i < nrOfWords; i++) { String word = scanner.nextLine(); if(canBeFormed(letterMap, word)){ System.out.println(word); } } scanner.close(); } private static boolean canBeFormed(Map letterMap, String word) { Map wordLetterMap = new HashMap(); for (int i = 0; i < word.length(); i++) { char c = word.charAt(i); if(wordLetterMap.containsKey(c)){ wordLetterMap.put(c, wordLetterMap.get(c)+1); } else { wordLetterMap.put(c, 1); } } for (Entry entry: wordLetterMap.entrySet()) { Character key = entry.getKey(); if(!letterMap.containsKey(key) || wordLetterMap.get(key) > letterMap.get(key)){ return false; } } return true; } }