CF1815C Between

题目描述

给定整数 $n,m$ 和 $m$ 个整数数对 $(a_i,b_i)$,保证 $a_i\neq b_i;1\leq a_i,b_i\leq n$ 且数对之间两两不同。 你需要构造一个满足下列所有要求的序列: - 序列中的所有元素都应为 $1\sim n$ 的整数。 - 序列中恰好有一个元素为 $1$。 - 对于每个整数 $i(1\leq i\leq m)$,都满足序列中任意两个位置不同且值为 $a_i$ 的元素之间都存在至少一个值为 $b_i$ 的元素。 - 在满足上述三条要求的情况下序列长度尽可能长。 如果满足上述前三条要求的序列可以达到任意大的长度,输出 `INFINITE`;否则输出 `FINITE`,并求出满足所有要求的任意一个序列。 每个测试点包含 $t$ 组数据。

输入格式

第一行输入一个整数 $t(1\leq t\leq300)$ 表示数据组数,接下来对于每组数据: 第一行输入两个整数 $n,m(1\leq n,\sum n\leq1500;0\le m,\sum m\leq5000)$。 接下来输入 $m$ 行,其中第 $i$ 行输入两个整数 $a_i,b_i(1\leq a_i,b_i\leq n;a_i\neq b_i)$。 保证对任意整数 $i,j(1\leq i

输出格式

对于每组数据: 如果满足上述前三条要求的序列可以达到任意大的长度,输出一行 `INFINITE`。 否则: - 首先输出一行 `FINITE`。 - 接下来输出一行一个整数 $s$ 表示满足所有要求的序列的长度。 - 接下来输出一行 $s$ 个整数表示你所构造的满足所有要求的序列。 如果有多个满足所有要求的序列,输出任意一个即可。 可以证明在题目限制下,一个测试点内答案为 `FINITE` 的所有组数据的 $s$ 之和不会超过 $2\times10^6$。

说明/提示

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 $ .