Codeforces Round 865 (Div. 1)
C
Between
Codeforces
2200
原题
← BD →
翻译中…

You are given an integer $n$, as well as $m$ pairs of integers $(a_i,b_i)$, where $1\leq a_i , b_i \leq n$, $a_i \ne b_i$.

翻译中…

You want to construct a sequence satisfying the following requirements:

翻译中…
  • All elements in the sequence are integers between $1$ and $n$.
  • There is exactly one element with value $1$ in the sequence.
  • For each $i$ ($1 \le i \le m$), between any two elements (on different positions) in the sequence with value $a_i$, there is at least one element with value $b_i$.
  • The sequence constructed has the maximum length among all possible sequences satisfying the above properties.
翻译中…

Sometimes, it is possible that such a sequence can be arbitrarily long, in which case you should output "INFINITE". Otherwise, you should output "FINITE" and the sequence itself. If there are multiple possible constructions that yield the maximum length, output any.

翻译中…

Input

翻译中…

Each test consists of multiple test cases. The first line contains a single integer $t$ ($1 \le t \le 300$) — the number of test cases. The description of test cases follows.

翻译中…

The first line of each test case contains two integers $n$ and $m$ ($1 \le n \le 1500$, $0 \le m \le 5000$) — the maximum possible value of the element of the sequence and the number of pairs.

翻译中…

The $i$-th of the next $m$ lines contain two integers $a_i$ and $b_i$ ($1 \le a_i , b_i \le n$, $a_i \ne b_i$).

翻译中…

$(a_i, b_i) \ne (a_j, b_j)$ for all $1 \le i \lt j \le m$.

翻译中…

It is guaranteed that sum of $n$ over all test cases doesn't exceed $1500$ and the sum of $m$ over all test cases doesn't exceed $5000$.

翻译中…

Output

翻译中…

For each test case, on the first line output "INFINITE" if the sequence can be arbitrarily long, and "FINITE" otherwise.

翻译中…

If you have outputted "FINITE", then your output should be followed by $2$ lines.

翻译中…

The first line contains an integer $s$, the maximum length of the sequence.

翻译中…

The second line contains $s$ integers, each are between $1$ and $n$ inclusive, representing the elements of the sequence.

翻译中…

If there are multiple sequences with the maximum length, output any of them.

翻译中…

It can be shown that, for all test cases with answer "FINITE", then under the constraints, the maximum possible sum of sequence lengths of those test cases does not exceed $2\cdot10^6$.

翻译中…

Note

翻译中…

In the first test case, there is an element $1$ between two elements with value $3$ and an element $1$ between two elements with value $2$. It can be shown that there is no suitable sequences of length more than $5$.

翻译中…

In the second case, $[1]$ is the only possible sequence because there should be exactly one element with value $1$ in the sequence.

翻译中…

In the third case, we can get an arbitrary long sequence like $1, 2, 2, 2, \ldots$.

翻译中…

样例

Input #1
5
3 2
3 1
2 1
1 0
2 0
2 2
1 2
2 1
5 5
2 1
3 1
4 2
4 5
5 1
Output #1
FINITE
5
2 3 1 2 3
FINITE
1
1
INFINITE
FINITE
3
2 1 2
FINITE
10
4 2 3 5 4 1 3 2 5 4
InputCopy OutputCopy
题目信息
题号
1815C
时间限制
2 s
内存限制
256 MB
标签
构造
DFS 及类似
图论
贪心

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。