#CSES1680. 最长航班路线

最长航班路线

题目背景

翻译自 CSES-1680 题。

题目描述

Uolevi 赢得了一场比赛,奖品是一次免费航班旅行,旅行可以由一次或多次飞行经过不同的城市组成。当然,Uolevi 想选择一条经过尽可能多城市的旅行路线。

Uolevi 想从 Syrjälä 飞往 Lehmälä,且在旅途中尽可能多地访问其他城市。给定一组可能的航班,且知道航班网络中没有有向环路。

输入格式

第一行包含两个整数 nnmm:分别表示城市的数量和航班的数量。城市编号为 1,2,,n1,2,…,n,其中城市 11 是 Syrjälä,城市 nn 是 Lehmälä。

接下来的 mm 行,每行包含两个整数 aabb:表示存在一条从城市 aa 到城市 bb 的单向航班。

输出格式

首先输出最大城市数,即在旅途中可以访问的城市数量。然后输出城市的访问顺序。你可以输出任意一个有效的解。

如果没有解(即无法从 Syrjälä 到 Lehmälä),输出 IMPOSSIBLE

样例

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

说明/提示

1n1051 \le n \le 10^5

1m21051\le m \le 2 \cdot 10^5

1a,bn1\le a,b \le n