6605 - 欧拉回路

通过次数

0

提交次数

0

时间限制 : 1 秒
内存限制 : 128 MB

有一天一位画师画了一个图,现在要你找出图的欧拉回路,即在图中找一个环使得每条边都在环上出现恰好一次,一共两个任务:

(1)这张图是无向图;(2)这张图是有向图。

输入

第一行一个整数t,表示任务编号,

,如果t=1,则表示处理无向图的情况;如果t=2,则表示处理有向图的情况。

第二行两个整数n,m,表示图的结点数和边数。

接下来m行中,第i行两个整数vi,ui表示第i条边(从1开始编号)。保证1≤vi,ui≤n。

(1)如果t=1则表示vi到ui有一条无向边。

(2)如果t=2则表示vi到ui有一条有向边。

图中可能有重边也可能有自环。

输出

如果不可以一笔画,输出一行:NO。

否则,输出一行:YES,接下来一行输出一组方案。

(1)如果t=1,输出m个整数:p1,p2…pm。令e=|pi|,那么e表示经过的第i条边的编号。如果pi为正数,表示从ve走到ue,否则表示从ue走到ve。

(2)如果t=2,输出m个整数:p1,p2…pm。其中pi表示经过的第i条边的编号。

样例

输入

1
3 3
1 2
2 3
1 3

输出

YES
1 2 -3

输入

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

输出

YES
4 1 3 5 2 6

提示

【数据规模】

1小于等于n,n小于等于10的5次方,0小于等于m,m小于等于2乘以(10的5次方)。

来源

一本通