#include using namespace std; #define rep(i,a,b) for(int i=a;i<(b);++i) #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() typedef long long ll; typedef pair pii; typedef vector vi; #define pb push_back #define ff first #define ss second void solve(){ ll n, m; cin >> n >> m; vector> a(n); for(ll i = 0; i < n; ++i){ ll k; cin >> k; for(ll ii = 0; ii < k; ++ii){ ll ai; cin >> ai; ai--; a[i].insert(ai); } } vector>> mc(m); for(ll i = 0; i < n; ++i){ for(ll mi : a[i]){ mc[mi].insert({-a[i].size(), i}); } } while(1){ map mp; bool still = false; for(ll j = 0; j < m; ++j){ if(mc[j].empty()) continue; still = true; mp[mc[j].begin()->ss]++; } if(!still) break; for(auto[i, cnt] : mp){ if(sz(a[i]) > cnt){ cout << "YES\n"; for(ll j = 0; j < m; ++j){ if(mc[j].empty()) continue; if(a[i].find(j) != a[i].end() && mc[j].begin()->ss != i){ cout << i+1 << " " << j+1 << "\n"; return; } } } } for(ll j = 0; j < m; ++j){ if(mc[j].empty()) continue; mc[j].erase(mc[j].begin()); } } cout << "NO\n"; } int main(){ cin.tie(0); ios_base::sync_with_stdio(0); cout<