import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String[] I = new String[in.nextInt()]; input(I, in); Set<String> set = new TreeSet<String>(Comparator.comparing(Integer::parseInt)); for (int i = in.nextInt(); i > 0; i--) { set.add(in.next()); } List<String> list = new ArrayList<>(); for (String r : set) { int count = 0; List<String> temp = new ArrayList<>(); for (int i = 0; i < I.length; i++) { if (contains(I[i], r)) { count++; temp.add(String.valueOf(i)); temp.add(I[i]); } } if (count != 0) { temp.add(0, String.valueOf(count)); temp.add(0, r); } list.addAll(temp); } list.add(0, String.valueOf(list.size())); System.out.println(String.join(" ", list)); } static boolean contains(String a, String b) { return String.valueOf(a).contains(String.valueOf(b)); } static void input(String[] arr, Scanner sc) { for (int i = 0; i < arr.length; i++) { arr[i] = sc.next(); } } }