등산

봉우리와 계곡으로 이루어진 이분 그래프에서 두 사람이 번갈아 아직 방문하지 않은 이웃을 고르고 더 이상 움직일 수 없는 사람이 지는 게임이며, 각 봉우리에서 시작할 때의 승자를 구한다.

보통7게임 이론그래프동적 계획법DFS아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

미르코와 슬라브코는 함께 등산을 다닌다. 미르코는 봉우리를 좋아하고 슬라브코는 계곡을 좋아한다. 그래서 봉우리에 오를 때마다 다음에 내려갈 계곡을 슬라브코가 고르고, 계곡에 도착할 때마다 다음에 오를 봉우리를 미르코가 고른다. 물론 등산로가 이어진 곳만 고를 수 있다. 봉우리에서 다른 봉우리로 바로 가거나 계곡에서 다른 계곡으로 바로 가는 등산로는 없다. 두 사람은 등산을 재미있게 하려고 봉우리든 계곡이든 같은 지점을 두 번 방문하지 않는다. 이미 방문한 지점으로만 등산로가 이어진 곳에 도착하면 두 사람은 산악 구조대를 불러 그 자리에서 등산을 끝낸다. 마지막 지점이 봉우리면 미르코가 이기고, 계곡이면 슬라브코가 이긴다.

두 사람이 모두 최선으로 움직인다고 하자. 각 봉우리에서 출발했을 때 누가 이기는지 모두 구하라.

입력

첫째 줄에 양의 정수 NNMM이 주어진다 (1N50001 \le N \le 5000, 1Mmin(5000,N×N)1 \le M \le \min(5000, N \times N)). 봉우리가 NN개, 계곡이 NN개 있고, MM은 등산로의 개수이다.

다음 MM개 줄에는 각각 양의 정수 viv_idid_i가 주어진다 (1vi,diN1 \le v_i, d_i \le N). 봉우리 viv_i와 계곡 did_i를 잇는 등산로가 있다는 뜻이다.

한 봉우리와 한 계곡을 잇는 등산로는 많아야 하나이다.

출력

NN개 줄을 출력한다. ii번째 줄에는 ii번 봉우리에서 출발했을 때 이기는 사람을 출력한다. 미르코가 이기면 Mirko를, 슬라브코가 이기면 Slavko를 출력한다.

힌트

두 번째 예제를 살펴보자.

1번 봉우리에서 출발하면 슬라브코가 1번 계곡을 고를 수 있으므로 슬라브코가 이긴다.

2번 봉우리에서 출발하면 슬라브코가 2번 계곡을 고를 수 있지만, 이어서 미르코가 4번 봉우리를 골라 이긴다.

3번 봉우리에는 등산로가 없으므로 미르코가 이긴다.

4번 봉우리에서 출발하면 슬라브코는 2번 계곡을 고를 수밖에 없고, 이어서 미르코가 2번 봉우리를 골라 이긴다.