질투하는 선생님

시간 제한3초메모리 제한1024 MB

요약
N-1명의 학생이 각자 N-1송이를 자신이 배운 교사에게 나눠 주고, 교사 한 명이 받는 꽃의 합이 정확히 N-1송이가 되도록 배분하거나 불가능하면 -1을 출력한다.
난이도

보통10점 중 6점

유형
그래프, 구현, 그리디, 배열
정답자
아직 제출이 없습니다

문제

한국과학기술원 부설 한국과학영재학교(KSA)에는 NN명의 선생님과 NN명의 학생이 있다. 내일이 스승의 날이라서 학생들은 각자 NN송이의 꽃을 샀다. 그런데 학생 한 명이 학교를 그만두는 바람에 이제 학생은 N−1N-1명만 남았다.

선생님들은 매우 질투가 많아서, 어떤 학생에게 다른 학생들보다 적은 수의 꽃을 받으면 그 학생에게 F 학점을 준다. 따라서 모든 선생님은 정확히 N−1N-1송이의 꽃을 받아야 한다. 학생은 자신을 가르친 선생님에게만 꽃을 줄 수 있고, 어느 학생이 어느 선생님에게 배웠는지는 주어진다.

승현이는 KSA의 학생이며, 이 행사를 준비하는 데 당신의 도움이 필요하다.

입력

첫 번째 줄에는 선생님의 수와 (학생, 선생님) 쌍의 수를 나타내는 두 정수 NN과 MM이 주어진다.

다음 MM개의 줄에는 관계가 주어진다. jj번째 줄에는 두 정수 sjs_j, tjt_j가 주어지며, 이는 sjs_j번째 학생이 tjt_j번째 선생님에게 꽃을 줄 수 있다는 뜻이다. 모든 쌍은 서로 다르다.

출력

모든 선생님에게 같은 수의 꽃(N−1N-1송이)을 줄 수 없다면 첫 번째 줄에 −1-1을 출력한다.

그렇지 않으면 MM개의 줄을 출력한다. jj번째 줄에는 sjs_j번째 학생이 tjt_j번째 선생님에게 준 꽃의 수를 나타내는 정수 하나를 출력한다.

가능한 답이 여러 개라면 아무 것이나 출력해도 된다.

제한

  • 2≤N≤100 0002 \le N \le 100\,000
  • 1≤M≤200 0001 \le M \le 200\,000
  • 1≤sj≤N−11 \le s_j \le N-1 (1≤j≤N1 \le j \le N)
  • 1≤tj≤N1 \le t_j \le N (1≤i≤N1 \le i \le N)

예제2

  1. 예제 1

    입력
    6 12
    1 3
    1 4
    1 5
    2 2
    2 4
    3 1
    3 3
    4 1
    4 2
    4 4
    5 4
    5 6
    예상 출력
    1
    0
    5
    5
    1
    2
    4
    3
    0
    3
    1
    5
    
  2. 예제 2

    입력
    6 12
    1 2
    1 3
    1 4
    2 2
    2 4
    3 1
    3 3
    4 1
    4 2
    4 4
    5 5
    5 6
    예상 출력
    -1