F - Pure /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 600

問題文

N 頂点 M 辺の有向グラフ G が与えられます。
このグラフの頂点には 1 から N までの番号が付けられており、i 番目の辺は頂点 A_i から頂点 B_i に向けて張られています。
このグラフは自己辺や多重辺を持たないことが保証されています。

すべての頂点の入次数が 1、出次数が 1 であるような G の誘導部分グラフ (注記を参照) が存在するか判定し、 存在するならその一例を示してください。
ただし、空グラフは含めないものとします。

注記

有向グラフ G = (V, E) に対し、次のような条件を満たす有向グラフ G' = (V', E')G の誘導部分グラフと呼びます。

  • V'V の (空でない) 部分集合である。
  • E' は、E の辺であって両端点がともに V' に含まれるものすべてを含む集合である。

制約

  • 1 \leq N \leq 1000
  • 0 \leq M \leq 2000
  • 1 \leq A_i,B_i \leq N
  • A_i \neq B_i
  • (A_i, B_i) はすべて異なる。
  • 入力はすべて整数である。

入力

入力は以下の形式で標準入力から与えられます。

N M
A_1 B_1
A_2 B_2
:
A_M B_M

出力

条件を満たす G の誘導部分グラフが存在しないとき、-1 と出力してください。 そうでないとき、以下のフォーマットで条件を満たす G の誘導部分グラフの一例を出力してください。

K
v_1
v_2
:
v_K

これは、頂点数が K、頂点集合が \{v_1, v_2, \ldots, v_K\} であるような G の誘導部分グラフを表します。(v_1, v_2, \ldots, v_K の順序は問いません。) 条件を満たす G の誘導部分グラフが複数存在するときは、そのうちのどれを出力しても構いません。


入力例 1

4 5
1 2
2 3
2 4
4 1
4 3

出力例 1

3
1
2
4

頂点集合が \{1, 2, 4\} であるような G の誘導部分グラフの辺集合は \{(1, 2), (2, 4), (4, 1)\} であり、すべての頂点の入次数が 1、出次数が 1 となります。


入力例 2

4 5
1 2
2 3
2 4
1 4
4 3

出力例 2

-1

条件を満たす G の誘導部分グラフは存在しません。


入力例 3

6 9
1 2
2 3
3 4
4 5
5 6
5 1
5 2
6 1
6 2

出力例 3

4
2
3
4
5

Score : 600 points

Problem Statement

Given is a directed graph G with N vertices and M edges.
The vertices are numbered 1 to N, and the i-th edge is directed from Vertex A_i to Vertex B_i.
It is guaranteed that the graph contains no self-loops or multiple edges.

Determine whether there exists an induced subgraph (see Notes) of G such that the in-degree and out-degree of every vertex are both 1. If the answer is yes, show one such subgraph.
Here the null graph is not considered as a subgraph.

Notes

For a directed graph G = (V, E), we call a directed graph G' = (V', E') satisfying the following conditions an induced subgraph of G:

  • V' is a (non-empty) subset of V.
  • E' is the set of all the edges in E that have both endpoints in V'.

Constraints

  • 1 \leq N \leq 1000
  • 0 \leq M \leq 2000
  • 1 \leq A_i,B_i \leq N
  • A_i \neq B_i
  • All pairs (A_i, B_i) are distinct.
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

N M
A_1 B_1
A_2 B_2
:
A_M B_M

Output

If there is no induced subgraph of G that satisfies the condition, print -1. Otherwise, print an induced subgraph of G that satisfies the condition, in the following format:

K
v_1
v_2
:
v_K

This represents the induced subgraph of G with K vertices whose vertex set is \{v_1, v_2, \ldots, v_K\}. (The order of v_1, v_2, \ldots, v_K does not matter.) If there are multiple subgraphs of G that satisfy the condition, printing any of them is accepted.


Sample Input 1

4 5
1 2
2 3
2 4
4 1
4 3

Sample Output 1

3
1
2
4

The induced subgraph of G whose vertex set is \{1, 2, 4\} has the edge set \{(1, 2), (2, 4), (4, 1)\}. The in-degree and out-degree of every vertex in this graph are both 1.


Sample Input 2

4 5
1 2
2 3
2 4
1 4
4 3

Sample Output 2

-1

There is no induced subgraph of G that satisfies the condition.


Sample Input 3

6 9
1 2
2 3
3 4
4 5
5 6
5 1
5 2
6 1
6 2

Sample Output 3

4
2
3
4
5