미로 설계

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

문제

주원이는 매년 1월 1일에만 개방하는 주때미로의 관리자이다. 주때미로에는 11번부터 NN번까지 번호가 붙은 총 NN 개의 방이 존재하며, 어떤 한 방에서 다른 어떤 방으로 이동할 수 있는 일방통행 통로가 MM 개 있다.

미로의 출발지는 11번 방이고, 도착지는 NN번 방이다. 따라서 미로를 찾는 손님들의 이동 경로는 11번 방에서 시작해 NN번 방에서 끝나게 된다.

미로는 다음 3가지 조건을 만족하게 설계된다.

  1. 미로가 너무 작으면 사람들이 실망하기 때문에, 미로의 방 개수는 100100개 이상이다.
  2. 미로의 각 방에 대해, 손님들이 미로를 통과할 수 있는 여러 방법 중 적어도 하나의 경로는 그 방을 포함한다. 
  3. 자칫하다, 손님들이 영원히 길을 잃을 수 있으므로, 어떤 방에서 출발해 다시 그 방으로 돌아올 수 있는 방법은 없다.

주때미로에는 그해의 행운의 수 KK에 맞게 미로의 경로의 개수를 KK의 배수로 만드는 전통이 있다. 그런데 주원이는 당장 내일 사용해야 할 미로를 작년 이후로 아직 고치지 않았다는 것을 깨달았다! 주원이는 헐레벌떡 남아있던 120120개 이하의 통로를 추가해서 경로의 개수를 맞추려고 한다. 단, 원래 미로에는 같은 방을 연결하는 통로가 유일하지만 급한 만큼 새로 추가하는 통로에 대해서는 이 조건을 무시하기로 마음먹었다. 

작년 미로를 보고, 주원이가 미로를 고칠 수 있게 도와주자!

입력

첫 번째 줄에 작년 미로의 방 개수 NN, 통로의 개수 MM, 올해의 행운의 수 KK가 공백으로 구분되어 주어진다.

두 번째 줄부터 MM개의 줄에 걸쳐 ii번째 통로의 정보 u_iu\_i, v_iv\_i가 공백으로 구분되어 주어진다. 이는 u_iu\_i번 방에서 v_iv\_i번 방으로 가는 일방통행 통로가 존재한다는 뜻이다.

출력

첫 번째 줄에 추가한 통로의 개수 XX를 출력한다. 추가하는 통로의 개수가 최소가 될 필요는 없다.

두 번째 줄부터 XX 개의 줄을 출력한다. 이 중 ii 번째 줄에는 통로의 정보 x_ix\_iy_iy\_i를 공백으로 구분하여 출력한다. 이는 ii 번째로 추가한 일방통행 통로가 x_ix\_i번 방에서 y_iy\_i번 방으로 가는 통로라는 의미이다.

제한

  • 100 N500,000100 \leq N \leq 500\\,000
  • N1 M 500,000N-1 \leq M \leq 500\\,000
  • 1K 1091 \leq K \leq 10^9
  • 1u_i,v_iN1 \leq u\_i, v\_i \leq N (1iM)(1 \le i \le M)
  • 어떤 방에서 출발해 다시 그 방으로 돌아올 수 있는 방법은 없다.
  • 입력으로 주어지는 모든 수는 정수다.
  • 0X1200 \leq X \leq 120
  • 1x_i,y_iN1 \leq x\_i, y\_i \leq N (1iX)(1 \le i \le X)
  • 출력해야 하는 모든 수는 정수이다.