#include #include using namespace std; const int MAX_N = 2e5; const int MAX_M = 1e6; vector activities[MAX_N + 1]; int ix[MAX_N + 1]; int ordered[MAX_N]; int last[MAX_M + 1]; bool cmp(int a, int b) { return activities[a].size() > activities[b].size(); } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m; cin >> n >> m; for (int i = 1; i <= n; i++) { int k, x; cin >> k; for (int j = 0; j < k; j++) { cin >> x; activities[i].push_back(x); } } for (int i = 0; i < n; i++) ordered[i] = i + 1; sort(ordered, ordered + n, cmp); for (int i = 0; i < n; i++) { ix[ordered[i]] = i + 1; } for (int i = 0; i < n; i++) { int u = ordered[i]; int mn = last[activities[u][0]], mx = last[activities[u][0]]; for (int a : activities[u]) { a = last[a]; if (ix[a] < ix[mn]) mn = a; if (ix[a] > ix[mx]) mx = a; } if (mn == mx) { for (int a : activities[u]) { last[a] = u; } } else { cout << "YES" << endl << u << ' ' << mx << endl; return 0; } } cout << "NO" << endl; return 0; }