#include using namespace std; using ll = long long int; using ld = long double; int n, m; vector> pers; vector persNB; vector> acti; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> n >> m; pers = vector>(n); persNB = vector(n); acti = vector>(m+1); for(int i = 0; i < n; i++){ int k; cin >> k; for(int j = 0; j < k; j++){ int in; cin >> in; pers[i].insert(in); acti[in].push_back(i); } } for(int i = 0; i < n; i++) persNB[i] = pers[i].size(); for(int a = 1; a <= m; a++){ vector> lis; for(int p : acti[a]){ lis.push_back({pers[p].size(), p}); } sort(lis.begin(), lis.end()); unordered_map trouve; int prec = -1; for(pair i : lis){ int nbacti = trouve.size(); int detect = 0; unordered_set curPersActi; for(int b : pers[i.second]){ // activité aimée curPersActi.insert((b)); if(trouve.contains(b)) detect++; else trouve[b] = i.second; } if(detect != nbacti){ cout << "YES\n"; cout << i.second+1 << ' ' << prec+1 << '\n'; return 0; } pers[i.second].erase(a); prec = i.second; } } cout << "NO\n"; return 0; }