그래프 트리 분할

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

정점 NN개, 간선 MM개의 그래프가 주어진다.

각 정점은 11부터 NN까지 번호가 매겨져 있고, 간선도 입력되는 순서대로 11부터 MM까지 번호가 매겨져 있다.

그래프에서 원하는 만큼 간선을 삭제해, 서로 다른 크기의 트리 2개로 분할해보자!

각각의 트리는 하나 이상의 정점을 가지고 있어야 하며, 두 트리가 동일한 정점이나 간선을 공유해서는 안 된다.

입력

첫 번째 줄에 정점의 개수 NN, 간선의 개수MM이 주어진다. (1 N  100,0001 \le N \le 100\\,0000 M 200,0000 \le M \le 200\\,000)

두 번째 줄부터 MM줄에 걸쳐서 간선을 나타내는 정수 uu와 vv가 주어진다. (1u,vN1 \le u, v \le N, u vu \ne v)

이는 uu번 정점과 vv번 정점을 잇는 양방향 간선이 존재함을 나타낸다. 중복 간선은 주어지지 않는다.

출력

그래프를 분할할 수 없다면 첫 번째 줄에 -1을 출력하고 종료한다.

분할 할 수 있는 방법이 존재한다면, 아무거나 하나, 아래와 같은 형식으로 출력한다.

첫 번째 줄에 두 트리의 크기 N_1,N_2N\_1, N\_2을 출력한다. (N_1N\_1N_2N\_2는 서로 다른 양의 정수이고, N_1+N_2=NN\_1 + N\_2 = N을 만족해야 한다.)

두 번째 줄에는 첫 번째 트리에 속한 정점 N_1N\_1개의 번호를 출력한다.

세 번째 줄에는 첫 번째 트리에 속한 간선 N_11N\_1 - 1개의 번호를 출력한다.

네 번째 줄에는 두 번째 트리에 속한 정점 N_2N\_2개의 번호를 출력한다.

다섯 번째 줄에는 두 번째 트리에 속한 간선 N_21N\_2 - 1개의 번호를 출력한다.

출력한 트리 각각은 연결 그래프이고, 동일한 정점이나 간선을 공유해서는 안된다.

출력하는 모든 정점의 번호는 11이상 NN이하를, 간선의 번호는 11이상 MM이하를 만족해야 한다.