#include using namespace std; #define fi first #define se second #define mp make_pair #define pb push_back typedef pair ii; const int len = 1e6+5; int sz[len], buck[len]; vector vec[len]; vector order; int main() { int n, m; scanf("%d %d", &n, &m); for (int i = 1; i <= n; i++) { scanf("%d", &sz[i]); order.pb(mp(sz[i], i)); for (int j = 0; j < sz[i]; j++) { int temp; scanf("%d", &temp); vec[i].pb(temp); } } sort(order.begin(), order.end()); bool found = false; int fir = -1, sec = -1; for (int i = 0; i < n; i++) { int id = order[i].se, s = order[i].fi; for (int v: vec[id]) { int b = buck[v]; if (b == -1) continue; sz[b]--; } for (int v: vec[id]) { int b = buck[v]; if (b != 0 && sz[b] > 0) { found = true; fir = id; sec = b; } if (found) break; buck[v] = id; } if (found) break; } if (found) printf("YES\n%d %d\n", fir, sec); else printf("NO\n"); return 0; }