import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNext()) { // 注意 while 处理多个 case
// int a = in.nextInt();
// int b = in.nextInt();
// System.out.println(a + b);
int n = in.nextInt();
String[] arr = new String[n];
for (int i = 0; i < n; i++) {
arr[i] = in.next();
}
String x = in.next();
int k = in.nextInt();
HashMap<Character, Integer> xMap = getCharMap(x);
ArrayList<String> broList = new ArrayList<>();
for (String s : arr) {
if (isBro(s, x, xMap)) {
broList.add(s);
}
}
System.out.println(broList.size());
if (broList.size() >= k) {
broList.sort((s1, s2) -> {
for (int i = 0; i < s1.length(); i++) {
if (s1.charAt(i) != s2.charAt(i)) {
return s1.charAt(i) - s2.charAt(i);
}
}
return 0;
});
System.out.println(broList.get(k - 1));
}
}
}
private static boolean isBro(String s, String x,
HashMap<Character, Integer> xMap) {
if (x.length() != s.length()) {
return false;
}
if (x.equals(s)) {
return false;
}
HashMap<Character, Integer> sMap = getCharMap(s);
for (char k : xMap.keySet()) {
if (!xMap.get(k).equals(sMap.get(k))) {
return false;
}
}
return true;
}
private static HashMap<Character, Integer> getCharMap(String s) {
HashMap<Character, Integer> map = new HashMap<>();
for (char c : s.toCharArray()) {
map.put(c, map.getOrDefault(c, 0) + 1);
}
return map;
}
}