시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB73543266.667%

문제

하이바이는 최근 이진 매칭을 배웠다. 이진 매칭이 무엇인지 모른다면, 아래 정의를 참고하자.

무방향 그래프 $G=(V,E)$의 이진 매칭은 아래 조건을 만족하는 $S\subseteq E$이다.

  • $S$에 속한 간선들만 남긴 그래프 $G'=(V,S)$에서, 모든 정점 $v$에 대해 $\mathrm{deg}(v)\equiv 1\pmod 2$이다. 여기서 $\mathrm{deg}(v)$는 $v$의 차수를 의미한다.

마침 출제할 만한 문제가 없었던 하이바이는 주어진 그래프의 이진 매칭을 찾는 문제를 내기로 했다. 그런데 실수로 입력 제한을 $106$이 아니라 $10^6$으로 세팅해 버렸다!

입력

첫째 줄에는 그래프 $G$의 정점 개수 $N$과 간선 개수 $M$이 공백으로 구분되어 주어진다. $(1\le N\le 10^6;$ $0\le M\le 10^6)$

이후 $M$개의 줄에 걸쳐 $i+1$번째 줄에는 $2$개의 정수 $v_i$, $w_i$가 공백으로 구분되어 주어진다. 이는 $v_i$번 정점과 $w_i$번 정점을 연결하는 $i$번 간선을 의미한다. $(1\le v_i,w_i\le N;$ $v_i\neq w_i)$

두 정점을 잇는 간선이 여러 개일 수 있으며, 주어지는 그래프가 연결되어 있지 않을 수도 있다.

출력

만약 주어진 그래프의 이진 매칭이 존재하지 않는다면 첫째 줄에 -1을 출력한다.

만약 주어진 그래프의 이진 매칭이 존재한다면 첫째 줄에 이진 매칭의 크기 $K$를 출력하고, 둘째 줄에 이진 매칭에 속한 간선의 번호를 오름차순으로 공백으로 구분하여 출력한다.

가능한 이진 매칭이 여러 가지라면 그중 아무거나 하나를 출력하면 된다. 이진 매칭의 크기를 최대화하거나, 최소화할 필요는 없다.

예제 입력 1

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

예제 출력 1

3
1 3 6

예제 입력 2

3 3
1 2
1 3
2 3

예제 출력 2

-1

예제 입력 3

4 1
2 3

예제 출력 3

-1
W3sicHJvYmxlbV9pZCI6IjMzNzIyIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiW0JdIFx1Yzc3NFx1YzljNCBcdWI5ZTRcdWNlNmQiLCJkZXNjcmlwdGlvbiI6IjxwPlx1ZDU1OFx1Yzc3NFx1YmMxNFx1Yzc3NFx1YjI5NCBcdWNkNWNcdWFkZmMgXHVjNzc0XHVjOWM0IFx1YjllNFx1Y2U2ZFx1Yzc0NCBcdWJjMzBcdWM2ZTBcdWIyZTQuIFx1Yzc3NFx1YzljNCBcdWI5ZTRcdWNlNmRcdWM3NzQgXHViYjM0XHVjNWM3XHVjNzc4XHVjOWMwIFx1YmFhOFx1Yjk3OFx1YjJlNFx1YmE3NCwgXHVjNTQ0XHViNzk4IFx1YzgxNVx1Yzc1OFx1Yjk3YyBcdWNjMzhcdWFjZTBcdWQ1NThcdWM3OTAuPFwvcD5cclxuXHJcbjxwPlx1YmIzNFx1YmMyOVx1ZDVhNSBcdWFkZjhcdWI3OThcdWQ1MDQgJEc9KFYsRSkkXHVjNzU4IDxzdHJvbmc+XHVjNzc0XHVjOWM0IFx1YjllNFx1Y2U2ZDxcL3N0cm9uZz5cdWM3NDAgXHVjNTQ0XHViNzk4IFx1Yzg3MFx1YWM3NFx1Yzc0NCBcdWI5Y2NcdWM4NzFcdWQ1NThcdWIyOTQgJFNcXHN1YnNldGVxIEUkXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPiRTJFx1YzVkMCBcdWMxOGRcdWQ1NWMgXHVhYzA0XHVjMTIwXHViNGU0XHViOWNjIFx1YjBhOFx1YWUzNCBcdWFkZjhcdWI3OThcdWQ1MDQgJEcmIzM5Oz0oVixTKSRcdWM1ZDBcdWMxMWMsIFx1YmFhOFx1YjRlMCBcdWM4MTVcdWM4MTAgJHYkXHVjNWQwIFx1YjMwMFx1ZDU3NCAkXFxtYXRocm17ZGVnfSh2KVxcZXF1aXYgMVxccG1vZCAyJFx1Yzc3NFx1YjJlNC4gXHVjNWVjXHVhZTMwXHVjMTFjICRcXG1hdGhybXtkZWd9KHYpJFx1YjI5NCAkdiRcdWM3NTggXHVjYzI4XHVjMjE4XHViOTdjIFx1Yzc1OFx1YmJmOFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuPFwvdWw+XHJcblxyXG48cD5cdWI5YzhcdWNlNjggXHVjZDljXHVjODFjXHVkNTYwIFx1YjljY1x1ZDU1YyBcdWJiMzhcdWM4MWNcdWFjMDAgXHVjNWM2XHVjNWM4XHViMzU4IFx1ZDU1OFx1Yzc3NFx1YmMxNFx1Yzc3NFx1YjI5NCBcdWM4ZmNcdWM1YjRcdWM5YzQgXHVhZGY4XHViNzk4XHVkNTA0XHVjNzU4IFx1Yzc3NFx1YzljNCBcdWI5ZTRcdWNlNmRcdWM3NDQgXHVjYzNlXHViMjk0IFx1YmIzOFx1YzgxY1x1Yjk3YyBcdWIwYjRcdWFlMzBcdWI4NWMgXHVkNTg4XHViMmU0LiBcdWFkZjhcdWI3ZjBcdWIzNzAgXHVjMmU0XHVjMjE4XHViODVjIFx1Yzc4NVx1YjgyNSBcdWM4MWNcdWQ1NWNcdWM3NDQgJDEwNiRcdWM3NzQgXHVjNTQ0XHViMmM4XHViNzdjICQxMF42JFx1YzczY1x1Yjg1YyBcdWMxMzhcdWQzMDVcdWQ1NzQgXHViYzg0XHViODM4XHViMmU0ITxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMFx1YjI5NCBcdWFkZjhcdWI3OThcdWQ1MDQgJEckXHVjNzU4IFx1YzgxNVx1YzgxMCBcdWFjMWNcdWMyMTggJE4kXHVhY2ZjIFx1YWMwNFx1YzEyMCBcdWFjMWNcdWMyMTggJE0kXHVjNzc0IFx1YWNmNVx1YmMzMVx1YzczY1x1Yjg1YyBcdWFkNmNcdWJkODRcdWI0MThcdWM1YjQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAkKDFcXGxlIE5cXGxlIDEwXjY7JCAkMFxcbGUgTVxcbGUgMTBeNikkPFwvcD5cclxuXHJcbjxwPlx1Yzc3NFx1ZDZjNCAkTSRcdWFjMWNcdWM3NTggXHVjOTA0XHVjNWQwIFx1YWM3OFx1Y2NkMCAkaSsxJFx1YmM4OFx1YzlmOCBcdWM5MDRcdWM1ZDBcdWIyOTQgJDIkXHVhYzFjXHVjNzU4IFx1YzgxNVx1YzIxOCAkdl9pJCwgJHdfaSRcdWFjMDAgXHVhY2Y1XHViYzMxXHVjNzNjXHViODVjIFx1YWQ2Y1x1YmQ4NFx1YjQxOFx1YzViNCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1Yzc3NFx1YjI5NCAkdl9pJFx1YmM4OCBcdWM4MTVcdWM4MTBcdWFjZmMgJHdfaSRcdWJjODggXHVjODE1XHVjODEwXHVjNzQ0IFx1YzVmMFx1YWNiMFx1ZDU1OFx1YjI5NCAkaSRcdWJjODggXHVhYzA0XHVjMTIwXHVjNzQ0IFx1Yzc1OFx1YmJmOFx1ZDU1Y1x1YjJlNC4gJCgxXFxsZSB2X2ksd19pXFxsZSBOOyQgJHZfaVxcbmVxIHdfaSkkPFwvcD5cclxuXHJcbjxwPlx1YjQ1MCBcdWM4MTVcdWM4MTBcdWM3NDQgXHVjNzg3XHViMjk0IFx1YWMwNFx1YzEyMFx1Yzc3NCBcdWM1ZWNcdWI3ZWMgXHVhYzFjXHVjNzdjIFx1YzIxOCBcdWM3ODhcdWM3M2NcdWJhNzAsIFx1YzhmY1x1YzViNFx1YzljMFx1YjI5NCBcdWFkZjhcdWI3OThcdWQ1MDRcdWFjMDAgXHVjNWYwXHVhY2IwXHViNDE4XHVjNWI0IFx1Yzc4OFx1YzljMCBcdWM1NGFcdWM3NDQgXHVjMjE4XHViM2M0IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWI5Y2NcdWM1N2QgXHVjOGZjXHVjNWI0XHVjOWM0IFx1YWRmOFx1Yjc5OFx1ZDUwNFx1Yzc1OCBcdWM3NzRcdWM5YzQgXHViOWU0XHVjZTZkXHVjNzc0IFx1Yzg3NFx1YzdhY1x1ZDU1OFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTRcdWJhNzQgXHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMCA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+LTE8XC9jb2RlPjxcL3NwYW4+XHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViOWNjXHVjNTdkIFx1YzhmY1x1YzViNFx1YzljNCBcdWFkZjhcdWI3OThcdWQ1MDRcdWM3NTggXHVjNzc0XHVjOWM0IFx1YjllNFx1Y2U2ZFx1Yzc3NCBcdWM4NzRcdWM3YWNcdWQ1NWNcdWIyZTRcdWJhNzQgXHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMCBcdWM3NzRcdWM5YzQgXHViOWU0XHVjZTZkXHVjNzU4IFx1ZDA2Y1x1YWUzMCAkSyRcdWI5N2MgXHVjZDljXHViODI1XHVkNTU4XHVhY2UwLCBcdWI0NThcdWM5ZjggXHVjOTA0XHVjNWQwIFx1Yzc3NFx1YzljNCBcdWI5ZTRcdWNlNmRcdWM1ZDAgXHVjMThkXHVkNTVjIFx1YWMwNFx1YzEyMFx1Yzc1OCBcdWJjODhcdWQ2MzhcdWI5N2MgXHVjNjI0XHViOTg0XHVjYzI4XHVjMjFjXHVjNzNjXHViODVjIFx1YWNmNVx1YmMzMVx1YzczY1x1Yjg1YyBcdWFkNmNcdWJkODRcdWQ1NThcdWM1ZWMgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWFjMDBcdWIyYTVcdWQ1NWMgXHVjNzc0XHVjOWM0IFx1YjllNFx1Y2U2ZFx1Yzc3NCBcdWM1ZWNcdWI3ZWMgXHVhYzAwXHVjOWMwXHViNzdjXHViYTc0IFx1YWRmOFx1YzkxMSBcdWM1NDRcdWJiMzRcdWFjNzBcdWIwOTggXHVkNTU4XHViMDk4XHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YmE3NCBcdWI0MWNcdWIyZTQuIFx1Yzc3NFx1YzljNCBcdWI5ZTRcdWNlNmRcdWM3NTggXHVkMDZjXHVhZTMwXHViOTdjIFx1Y2Q1Y1x1YjMwMFx1ZDY1NFx1ZDU1OFx1YWM3MFx1YjA5OCwgXHVjZDVjXHVjMThjXHVkNjU0XHVkNTYwIFx1ZDU0NFx1YzY5NFx1YjI5NCBcdWM1YzZcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIn0seyJwcm9ibGVtX2lkIjoiMzM3MjIiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJbQl0gQmluYXJ5IE1hdGNoaW5nIiwiZGVzY3JpcHRpb24iOiI8cD5IaWJ5ZSBoYXMgcmVjZW50bHkgc3R1ZGllZCBiaW5hcnkgbWF0Y2hpbmcuIElmIHlvdSBkbyBub3Qga25vdyB3aGF0IGJpbmFyeSBtYXRjaGluZyBpcyByZWZlciB0byB0aGUgZGVmaW5pdGlvbiBiZWxvdy48XC9wPlxyXG5cclxuPHA+QSA8c3Ryb25nPmJpbmFyeSBtYXRjaGluZzxcL3N0cm9uZz4gb2YgYW4gdW5kaXJlY3RlZCBncmFwaCAkRz0oVixFKSQgaXMgYSAkU1xcc3Vic2V0ZXEgRSQgd2hpY2ggc3VpdHMgdGhlIGZvbGxvd2luZyBjb25kaXRpb24uPFwvcD5cclxuXHJcbjx1bD5cclxuXHQ8bGk+Rm9yIGFsbCB2ZXJ0aWNlcyAkdiQgaW4gdGhlIGdyYXBoICRHJiMzOTs9KFYsUykkIGZvcm1lZCBieSByZW1vdmluZyBhbGwgZWRnZXMgbm90IGluICRTJCwgJFxcbWF0aHJte2RlZ30odilcXGVxdWl2IDFcXHBtb2QgMiQsIHdoZXJlICRcXG1hdGhybXtkZWd9KHYpJCBpcyB0aGUgZGVncmVlIG9mIHRoZSB2ZXJ0ZXggJHYkLjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPk91dCBvZiBwcm9ibGVtIGlkZWFzLCBIaWJ5ZSBkZWNpZGVkIHRvIG1ha2UgYSBwcm9ibGVtIGFib3V0IGZpbmRpbmcgYSBiaW5hcnkgbWF0Y2hpbmcgZm9yIGEgZ2l2ZW4gZ3JhcGguIEhvd2V2ZXIsIGluc3RlYWQgb2Ygc2V0dGluZyB0aGUgaW5wdXQgY29uc3RyYWludHMgYXMgJDEwNiQsIGhlIHNldCBpdCBhcyAkMTBeNiQgYWNjaWRlbnRhbGx5ITxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgb2YgaW5wdXQgY29udGFpbnMgdHdvIHNwYWNlLXNlcGFyYXRlZCBpbnRlZ2VycyAkTiQgYW5kICRNJCwgZGVub3RpbmcgdGhlIG51bWJlciBvZiB2ZXJ0aWNlcyBhbmQgZWRnZXMgaW4gJEckLCByZXNwZWN0aXZlbHkuICQoMSBcXGxlIE4gXFxsZSAxMF42OyQgJDAgXFxsZSBNIFxcbGUgMTBeNikkPFwvcD5cclxuXHJcbjxwPkFjcm9zcyAkTSQgbGluZXMsIHRoZSAkaSsxJC10aCBsaW5lIG9mIGlucHV0IGNvbnRhaW5zIHR3byBzcGFjZS1zZXBhcmF0ZWQgaW50ZWdlcnMgJHZfaSQgYW5kICR3X2kkLiBUaGlzIGRlbm90ZXMgdGhhdCB0aGUgZWRnZSBudW1iZXJlZCAkaSQgY29ubmVjdGluZyB2ZXJ0ZXggJHZfaSQgYW5kIHZlcnRleCAkd19pJC4gJCgxIFxcbGUgdl9pLCB3X2kgXFxsZSBOOyQgJHZfaSBcXG5lcSB3X2kpJDxcL3A+XHJcblxyXG48cD5UaGVyZSBtYXkgYmUgbXVsdGlwbGUgZWRnZXMgYmV0d2VlbiB0d28gdmVydGljZXMsIGFuZCB0aGUgZ2l2ZW4gZ3JhcGggbWF5IG5vdCBiZSBjb25uZWN0ZWQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+SWYgdGhlcmUgZXhpc3RzIG5vIGJpbmFyeSBtYXRjaGluZyBmb3IgdGhlIGdpdmVuIGdyYXBoLCBwcmludCA8c3BhbiBzdHlsZT1cImNvbG9yOiNlNzRjM2M7XCI+PGNvZGU+LTE8XC9jb2RlPjxcL3NwYW4+Jm5ic3A7aW4gdGhlIGZpcnN0IGxpbmUuPFwvcD5cclxuXHJcbjxwPklmIHRoZXJlIGV4aXN0cyBhIGJpbmFyeSBtYXRjaGluZyBmb3IgdGhlIGdpdmVuIGdyYXBoLCBwcmludCBpdHMgc2l6ZSAkSyQgaW4gdGhlIGZpcnN0IGxpbmUuIEluIHRoZSBzZWNvbmQgbGluZSwgcHJpbnQgdGhlIGVkZ2UgbnVtYmVycyBmb3IgdGhlIGVkZ2VzIGluIHRoZSBiaW5hcnkgbWF0Y2hpbmcgaW4gYXNjZW5kaW5nIG9yZGVyIHdpdGggYSBzcGFjZSBiZXR3ZWVuIHR3byBudW1iZXJzLjxcL3A+XHJcblxyXG48cD5Zb3UgZG8gbm90IG5lZWQgdG8gbWF4aW1pemUgb3IgbWluaW1pemUgdGhlIHNpemUgb2YgdGhlIGJpbmFyeSBtYXRjaGluZy48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJFbmdsaXNoIn1d

출처