#include<stdio.h>
#include<vector>
#include<string.h>
#include<algorithm>
using namespace std;
char name[40010][5];
bool cmp(int a, int b){
return strcmp(name[a], name[b]) < 0;
}
int main(){
int n, k;
vector<int> vi[2510];
scanf("%d %d", &n, &k);
for(int i = 0; i < n; i++){
int c, temp;
scanf("%s %d", &name[i], &c);
for(int j = 0; j < c; j++){
scanf("%d", &temp);
vi[temp].push_back(i);
}
}
for(int i = 1; i <= k; i++){
printf("%d %d\n", i, vi[i].size());
sort(vi[i].begin(), vi[i].end(), cmp);
for(int j = 0; j < vi[i].size(); j++){
printf("%s\n", name[vi[i][j]]);
}
}
return 0;
}
第一次,参考算法笔记完成,