5158 {
5159 int n;
5160 int t;
5161 cin >> n >> t;
5162 vector out(n + 1, 0);
5163 vector in(n + 1, 0);
5164 vector<unordered_set<int>> following(n + 1);
5165 unordered_map<int, int> kols;
5166 for(int i = 1; i <= n; i++) {
5167 int m;
5168 cin >> m;
5169 out[i] += m;
5170 while(m-- != 0) {
5171 int u;
5172 cin >> u;
5173 in[u]++;
5174 following[i].insert(u);
5175 }
5176 }
5177 for(int i = 1; i <= n; i++) {
5178 if(out[i] == 0 || in[i] / following[i].size() >= t) {
5179 if(!kols.contains(i)) {
5180 kols[i] = 0;
5181 }
5182 }
5183 }
5184 for(const auto &kol: kols) {
5185 for(const auto &fo: following[kol.first]) {
5186 if(kols.contains(fo)) {
5187 kols[fo]++;
5188 }
5189 }
5190 }
5191 int maximum = 0;
5192 for(auto &kv: kols) {
5193 maximum = max(maximum, kv.second);
5194 }
5196 for(auto &kv: kols) {
5197 if(kv.second == maximum) {
5198 ans.emplace_back(kv.first);
5199 }
5200 }
5201 sort(
ans.begin(),
ans.end());
5202 for(
int i = 0; i <
ans.size(); i++) {
5204 if(i !=
ans.size() - 1) {
5205 cout << ' ';
5206 }
5207 }
5208 return 0;
5209 }
vector< vector< int > > ans