import java.util.*;

public class Main {
    public static void main(String[] args) {
        // 使用Scanner读取输入
        Scanner scanner = new Scanner(System.in);

        // 读取文档数量
        int N = scanner.nextInt();
        scanner.nextLine(); // 消耗换行符

        // 创建单词到文档列表的映射
        Map<String, List<Integer>> wordToDocs = new HashMap<>();

        // 处理每篇文档
        for (int i = 1; i <= N; i++) {
            // 读取整行并分割
            String[] parts = scanner.nextLine().split(" ");
            int Li = Integer.parseInt(parts[0]);

            // 使用集合存储当前文档的单词,避免重复
            Set<String> wordsInDoc = new HashSet<>();
            for (int j = 1; j <= Li; j++) {
                wordsInDoc.add(parts[j]);
            }

            // 将当前文档编号添加到每个单词的文档列表中
            for (String word : wordsInDoc) {
                // 如果单词不存在则创建新列表,否则使用现有列表
                wordToDocs.computeIfAbsent(word, k -> new ArrayList<>()).add(i);
            }
        }

        // 读取查询数量
        int M = scanner.nextInt();
        scanner.nextLine(); // 消耗换行符

        // 处理每个查询
        for (int i = 0; i < M; i++) {
            String word = scanner.nextLine();
            List<Integer> docs = wordToDocs.get(word);

            // 输出结果
            if (docs != null) {
                for (int j = 0; j < docs.size(); j++) {
                    System.out.print(docs.get(j) + " ");
                }
            }
            
            System.out.println();
        }

        scanner.close();
    }
}