import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) { // 注意 while 处理多个 case
int wordCount = in.nextInt();
List<String> wordList = new ArrayList<>(wordCount);
for (int i = 0; i < wordCount; i++) {
String word = in.next();
wordList.add(word);
}
String target = in.next();
int k = in.nextInt();
findBrother(wordList, target, k);
}
}
public static void findBrother(List<String> wordList, String target, int k) {
List<String> res = new ArrayList<>();
char[] chars = target.toCharArray();
HashMap<Character, Integer> targetMap = new HashMap<>();
for (char ch : chars) {
Integer times = targetMap.getOrDefault(ch, 0);
targetMap.put(ch, times + 1);
}
for (String word : wordList) {
if (word.length() != target.length() || word.equals(target)) {
continue;
}
char[] charArray = word.toCharArray();
boolean isBrother = true;
HashMap<Character, Integer> wordMap = new HashMap<>();
for (char ch : charArray) {
if (!targetMap.containsKey(ch)) {
isBrother = false;
break;
}
Integer times = wordMap.getOrDefault(ch, 0);
wordMap.put(ch, times + 1);
}
if (isBrother) {
for (Map.Entry<Character, Integer> entry : wordMap.entrySet()) {
Character key = entry.getKey();
Integer value = entry.getValue();
if (!targetMap.get(key).equals(value)) {
isBrother = false;
break;
}
}
}
if (isBrother) {
res.add(word);
}
}
int m = res.size();
System.out.println(m);
Collections.sort(res);
if (m > k) {
System.out.println(res.get(k - 1));
}
}
}