311202: CF1949F. Dating

Memory Limit:512 MB Time Limit:3 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

F. Datingtime limit per test3 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard output

You are the developer of a dating app which ignores gender completely. The app has $n$ users, indexed from $1$ to $n$. Each user's profile features a list of the activities they enjoy doing. There are $m$ possible activities, indexed from $1$ to $m$.

A match between two users is good if they share at least one activity and, at the same time, both of them like at least one activity that the other user does not like.

Find a good match if it exists.

Input

The first line contains two integers $n$ and $m$ ($2 \leq n \leq 200\,000$, $1 \leq m \leq 10^6$) — the number of users and the number of activities.

Each of the following $n$ lines contains a number $k_i$ ($0 \leq k_i \leq m$) — the number of activities that user $i$ likes — followed by $k_i$ distinct integers from $1$ to $m$ — the activities user $i$ likes.

It is guaranteed that $k_1+k_2+\cdots+k_n$ does not exceed $10^6$.

Output

Print $\texttt{YES}$ if a good match exists. Otherwise, print $\texttt{NO}$.

If a good match exists, on the next line print two integers — the indexes of two users that make a match.

ExamplesInput
3 5
3 1 2 4
5 1 2 3 4 5
2 1 5
Output
YES
3 1
Input
3 3
1 1
1 2
3 2 3 1
Output
NO
Note

In the first sample, users $1$ and $3$ form a match, because they share activity $1$, and, furthermore, user $3$ likes activity $5$ (which user $1$ does not like) and user $1$ likes activity $4$ (which user $3$ does not like). Note that users $1$ and $2$, as well as users $2$ and $3$, do not form a match, as there is no activity that users $1$ or $3$ like, and user $2$ doesn't like.

Output

题目大意:
你是一个约会应用的开发者,这个应用完全忽略了性别。应用有 n 个用户,编号从 1 到 n,每个用户的个人资料上都列出了他们喜欢的活动。总共有 m 种可能的活动,编号从 1 到 m。

如果两个用户至少有一个共同喜欢的活动,并且同时他们各自喜欢至少一个对方不喜欢的活动,那么这两个用户之间就是一个好的匹配。

如果存在好的匹配,则输出这个匹配的两个用户的编号。如果没有,则输出 "NO"。

输入数据格式:
第一行包含两个整数 n 和 m(2 ≤ n ≤ 200,000,1 ≤ m ≤ 10^6)—— 用户数量和活动数量。
接下来 n 行,每行包含一个整数 k_i(0 ≤ k_i ≤ m)—— 第 i 个用户喜欢的活动数量,然后是 k_i 个不同的整数(从 1 到 m)—— 该用户喜欢的活动编号。
保证 k_1 + k_2 + ... + k_n 不超过 10^6。

输出数据格式:
如果存在好的匹配,则首先输出 "YES",然后在下一行输出两个整数—— 形成匹配的两个用户的编号。
如果不存在好的匹配,则输出 "NO"。

示例:
输入:
3 5
3 1 2 4
5 1 2 3 4 5
2 1 5

输出:
YES
3 1

解释:
用户 1 和用户 3 形成一个匹配,因为他们都喜欢活动 1,而且用户 3 喜欢活动 5(用户 1 不喜欢),用户 1 喜欢活动 4(用户 3 不喜欢)。注意用户 1 和用户 2 以及用户 2 和用户 3 不会形成匹配,因为没有用户 1 或用户 3 喜欢的活动是用户 2 不喜欢的。题目大意: 你是一个约会应用的开发者,这个应用完全忽略了性别。应用有 n 个用户,编号从 1 到 n,每个用户的个人资料上都列出了他们喜欢的活动。总共有 m 种可能的活动,编号从 1 到 m。 如果两个用户至少有一个共同喜欢的活动,并且同时他们各自喜欢至少一个对方不喜欢的活动,那么这两个用户之间就是一个好的匹配。 如果存在好的匹配,则输出这个匹配的两个用户的编号。如果没有,则输出 "NO"。 输入数据格式: 第一行包含两个整数 n 和 m(2 ≤ n ≤ 200,000,1 ≤ m ≤ 10^6)—— 用户数量和活动数量。 接下来 n 行,每行包含一个整数 k_i(0 ≤ k_i ≤ m)—— 第 i 个用户喜欢的活动数量,然后是 k_i 个不同的整数(从 1 到 m)—— 该用户喜欢的活动编号。 保证 k_1 + k_2 + ... + k_n 不超过 10^6。 输出数据格式: 如果存在好的匹配,则首先输出 "YES",然后在下一行输出两个整数—— 形成匹配的两个用户的编号。 如果不存在好的匹配,则输出 "NO"。 示例: 输入: 3 5 3 1 2 4 5 1 2 3 4 5 2 1 5 输出: YES 3 1 解释: 用户 1 和用户 3 形成一个匹配,因为他们都喜欢活动 1,而且用户 3 喜欢活动 5(用户 1 不喜欢),用户 1 喜欢活动 4(用户 3 不喜欢)。注意用户 1 和用户 2 以及用户 2 和用户 3 不会形成匹配,因为没有用户 1 或用户 3 喜欢的活动是用户 2 不喜欢的。

加入题单

上一题 下一题 算法标签: