#include #pragma GCC optimize ("Ofast") using namespace std; #define rep(i,a,b) for(ll i = a; i vl; typedef pair pll; int main(){ cin.tie(0); ios_base::sync_with_stdio(0); int n, m; cin >> n >> m; vector act(m,-1); vector> ppl(n); for(int i = 0; i < n; i++) { int k; cin >> k; ppl[i].resize(k); for(int j = 0; j < k; j++) { cin >> ppl[i][j]; ppl[i][j]--; } } vector pplmap(n); for(int i = 0; i < n; i++) pplmap[i] = i; sort(pplmap.begin(), pplmap.end(), [&](int a, int b) {return ppl[a].size() > ppl[b].size();}); for(int i = 0; i < n; i++) { int person = pplmap[i]; if(ppl[person].empty()) continue; int orig = act[ppl[person][0]]; for(int x : ppl[person]) { int anum = act[x]; if(orig != anum) { cout << "YES\n" << pplmap[max(orig,anum)] + 1 << " " << pplmap[i]+1 << "\n"; return 0; } act[x] = i; } } cout << "NO\n"; }