题库练习 Catowice City
← 上一题 下一题 →

A12874 | Catowice City

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

In the Catowice city next weekend the cat contest will be held. However, the jury members and the contestants haven't been selected yet. There are $n$ residents and $n$ cats in the Catowice, and each resident has exactly one cat living in his house. The residents and cats are numbered with integers from $1$ to $n$ , where the $i$ -th cat is living in the house of $i$ -th resident.

Each Catowice resident is in friendship with several cats, including the one living in his house. In order to conduct a contest, at least one jury member is needed and at least one cat contestant is needed. Of course, every jury member should know none of the contestants. For the contest to be successful, it's also needed that the number of jury members plus the number of contestants is equal to $n$ .

Please help Catowice residents to select the jury and the contestants for the upcoming competition, or determine that it's impossible to do.

输入格式

The first line contains an integer $t$ ( $1 \le t \le 100\,000$ ), the number of test cases. Then description of $t$ test cases follow, where each description is as follows:

The first line contains integers $n$ and $m$ ( $1 \le n \le m \le 10^6$ ), the number of Catowice residents and the number of friendship pairs between residents and cats.

Each of the next $m$ lines contains integers $a_i$ and $b_i$ ( $1 \le a_i, b_i \le n$ ), denoting that $a_i$ -th resident is acquaintances with $b_i$ -th cat. It's guaranteed that each pair of some resident and some cat is listed at most once.

It's guaranteed, that for every $i$ there exists a pair between $i$ -th resident and $i$ -th cat.

Different test cases are separated with an empty line.

It's guaranteed, that the sum of $n$ over all test cases is at most $10^6$ and that the sum of $m$ over all test cases is at most $10^6$ .

输出格式

For every test case print:

- "No", if it's impossible to select the jury and contestants.
- Otherwise print "Yes".In the second line print two integers $j$ and $p$ ( $1 \le j$ , $1 \le p$ , $j + p = n$ ) — the number of jury members and the number of contest participants.

In the third line print $j$ distinct integers from $1$ to $n$ , the indices of the residents forming a jury.

In the fourth line print $p$ distinct integers from $1$ to $n$ , the indices of the cats, which will participate in the contest.

In case there are several correct answers, print any of them.

输入输出样例

输入 #1
4
3 4
1 1
2 2
3 3
1 3

3 7
1 1
1 2
1 3
2 2
3 1
3 2
3 3

1 1
1 1

2 4
1 1
1 2
2 1
2 2
输出 #1
Yes
2 1
1 3 
2 
Yes
1 2
2 
1 3 
No
No
C++ 编辑器
输入
输出