CF19E Fairy

题目描述

很久很久以前,有一只可爱的星族猫 A。 一天,一只野心勃勃的可爱小猫 B 来找他,请 A 预测他的未来。 A 掐爪一算,说:“你以后会成为族长。” B 很高兴,然而 A 接着说:“但是,这个预言不一定会成真。”A 在地上画了若干个点,把其中一些点用线段连起来,“如果你能够擦掉一条边,使得你可以把所有的点分为‘猫点’和‘猎物点’两种,任意两个‘猫点’都不相邻,任意两个‘猎物点’也都不相邻,那么预言就会成真。” B 很想当族长。于是他请来了你——全族群中最聪明的猫来帮他算一算,他所有能够使得预言成真的擦边方案数。

输入格式

第一行输入两个整数 $n,m$,分别代表图的点数和边数。 接下来 $m$ 行,每行输入两个数字 $u_i,v_i$,代表第 $u_i$ 个点和第 $v_i$ 个点之间连有一条边。每条边不会被输入多次。

输出格式

第一行输出一个数字 $k$,代表删边方案数。第二行按升序输出 $k$ 个以单个空格隔开的正整数,代表可以删除的边的编号。一条边的编号定义为它在输入中出现的次序,从 $1$ 开始。

说明/提示

$1 \le n \le 10^4, 0 \le m \le 10^4, \forall 1 \le i \le m, 1 \le u_i,v_i \le n$。