바이트랜드의 여러 나라가 통합하여 '바이트 국가 연합'을 만들기로 했다. 그 첫 번째 정책 중 하나는 농업에 대한 직접 보조금 제도이다. 모든 농부는 자신이 소유한 농장의 크기를 나타내는 자연수를 하나 받고, 이 수가 곧 받게 될 보조금의 크기를 결정한다.
불평등을 줄이기 위해 의회는 0부터 시작하여 가장 작은 수를 가진 농부에게 가장 많은 보조금을 주기로 했다. 이렇게 하면 모든 농부가 값 0을 차지하려 하므로 다음 규칙이 추가되었다. 각 농부에게는, 그가 고용한 농부들에게 배정된 모든 수와 다른 가장 작은 자연수를 배정해야 한다.
그런데 어떤 구성에서는 이러한 배정을 유일하게 만들 수 없거나 아예 만들 수 없는 경우가 있다. 이런 경우를 위해 무한대라는 값을 추가로 사용한다. 농부 X는, X가 고용한 어떤 농부 Y 역시 무한대를 배정받았고, 그 Y가 고용한 농부들 중 어느 누구도 X가 차지하고 싶어 하는 유한한 값을 배정받지 않은 경우에 한해 무한대를 배정받을 수 있다. 정부는 최종 배정에 무한대가 가능한 한 많이 포함되기를 원하며, 이 조건을 만족하는 배정은 유일하다.
이 배정을 계산하는 프로그램을 작성하여라. 값이 무한대인 농부에 대해서는 −1을 출력한다.
첫째 줄에 테스트 케이스의 수 t (1≤t≤100)가 주어진다. 이어서 t개의 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 줄에는 두 정수 n과 m (1≤n≤100, 0≤m<10000)이 주어지며, 각각 농부의 수와 그들 사이의 고용 관계의 수를 의미한다. 농부는 1번부터 n번까지 번호가 매겨져 있다.
다음 m개의 줄에는 각각 두 정수 a와 b (1≤a,b≤n)가 주어지며, 이는 농부 a가 농부 b를 고용함을 의미한다.
각 테스트 케이스마다 n개의 줄을 출력한다. 그중 i번째 줄에는 농부 i에게 배정된 값을 출력한다. 그 값이 무한대이면 대신 −1을 출력한다.