#1470. 派对选址

派对选址

题目描述

2022 年,scu_acmers 决定举行一个聚会,并且大多数老 scu_acmers 队员已经 收到了邀请函,包括队员 onmylove , tanlinghangzsasuke(scu_isap 队的老队员)

scu 毕业已经 10\red {10} 年了,现在他们住在不同的城市

他们都非常傲慢,都认为在所有 scu_acmers 队员中,自己才是最擅长跑步的人

为了证明这一点,他们都决定花上几天 时间跑向目的地(聚会所举办的城市),并且为了节省体力,他们每个人都会选择最短的路 线前往(可能存在多条最短路线,在这种情况下,他们会随机选择其中的一条)

但是这会 导致一系列问题:他们会偶然停下来休息,并且他们一旦在同一条路上相遇,他们会停止前 进,开始争吵谁才是最擅长跑步的人,彻底错过聚会

Scu 的领导都是考虑周到的人,他们不想让任何一个人错过聚会,因此他们想要选择一 个合适的聚会城市,使得 scu_isap 的队员们不会在中途相遇

但是他们都很忙,所以这 个任务就交给你了

输入格式

第一行两个正整数 N\red NM\red M,表示城市个数和道路条数(onmylove 住在城市 1\red 1tanlinghang 住在城市 2\red 2zsasuke 住在城市 3\red 3),接下来 M\red M 行,每行包含三个正整数 a\red a,b\red b,c\red c(1<=a,b<=N,1<=c<=10,ba\red {1<=a,b<=N,1<=c<=10,b≠a},并且任意两个城市之间至多只有一条道路直接相 连),表示从 a\red ab\red b 要花费 c\red c 天,从 b\red ba\red a 要花费 c\red c

输出格式

如果不存在这样的城市,输出仅一行”impossible”(不含引号),

否则,第一行输出 一个数 P\red P,表示有 P\red P 个城市满足要求,

接下来一行,P\red P 个用空格隔开的数,表示满足条件的 城市编号(升序输出)

样例

输入样例

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

输出样例

1 5

提示

样例解释

我们不能选择 4\red 4 号城市

假如我们选择 4\red 4 号城市,那么,onmylove 的路线是 154\red {1-5-4};

tanlinghang 的是 254\red {2-5-4}24\red {2-4};

如果 tanlinghang 选择 254\red {2-5-4},他将与 onmylove5\red 54\red 4 之间的道路上相遇,然后争吵

数据规模

对于 10%\red {10\%}的数据,3<=N<=51<=M<=10\red {3<=N<=5,1<=M<=10}; 对于 100%\red {100\%}的数据,3<=N<=30001<=M<=200000\red {3<=N<=3000,1<=M<=200000};