#include "bits/stdc++.h" using namespace std; typedef long long ll; typedef vector vi; typedef vector vvi; typedef pair pi; #define all(x) begin(x),end(x) #define rep(i,a,b) for(int i=a;i> n >> m; vector a(n); for(auto& v : a) { int k; cin >> k; v.resize(k); for(auto& i : v) cin >> i; sort(all(v)); } vi ord(n); iota(all(ord),0); sort(all(ord),[&](int i, int j) {return a[i] checked; DSU dsu(m+1); sort(all(ord),[&](int i, int j) { return make_pair(a[i].size(),i)>make_pair(a[j].size(),j); }); for(auto id : ord) { int sz=0; set s; for(auto x : a[id]) { l[x].pop_back(); // ben ik zelf. if(l[x].empty()) continue; int ch = l[x].back(); if(s.count(ch)) continue; s.insert(ch); for(auto y : a[ch]) { if(!binary_search(all(a[id]),y)) { answer(id,ch); } } sz+=a[ch].size(); } if(sz>a[id].size()) { vi lijst(m+1,-1); s.clear(); for(auto x : a[id]) { if(l[x].empty()) continue; int ch = l[x].back(); if(s.count(ch)) continue; s.insert(ch); for(auto y : a[ch]) { if(lijst[y]!=-1) answer(lijst[y],ch); lijst[y]=ch; } } } } cout << "NO\n"; }