#include using namespace std; typedef long long ll; void solve() { int N, M; cin >> N >> M; vector>> G(N); int x = 1; for (auto& [i, g] : G) { i = x++; int k; cin >> k; g.resize(k); for (int& a : g) { cin >> a; a--; } } sort(G.begin(), G.end(), [](const auto& a, const auto& b) { return a.second.size() < b.second.size(); }); vector U(M, -1); for (int i = 0; i < N; i++) { map F; for (int a : G[i].second) { F[U[a]]++; U[a] = i; } for (auto [u, c] : F) { if (u != -1 && c < (int)G[u].second.size()) { cout << "YES\n" << G[i].first << ' ' << G[u].first << endl; return; } } } cout << "NO" << endl; } int main() { ios::sync_with_stdio(false); int T = 1; // cin >> T; for (int i = 1; i <= T; i++) { solve(); } return 0; }