import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int itemCount = in.nextInt(); int wordCount = in.nextInt(); // 主要考察数据结构,使用哈希集合存储关键词, // 用哈希集合方便判断是否关键词 Set<String> set = new HashSet<>(); for (int i = 0; i < wordCount; i++) { set.add(in.next()); } // 保存商品名称 String[] items = new String[itemCount]; // 0存储商品下标(在 items 中的),1 存储关键词数量 int[][] arr = new int[itemCount][2]; for (int i = 0; i < itemCount; i++) { items[i] = in.next(); arr[i][0] = i; int count = in.nextInt(); for (int j = 0; j < count; j++) { String word = in.next(); if (set.contains(word)) { arr[i][1]++; } } } // 按照商品关键词数量排序 Arrays.sort(arr, (a, b) -> b[1] - a[1]); for (int i = 0; i < itemCount; i++) { System.out.println(items[arr[i][0]]); } } }