|시간 제한||메모리 제한||제출||정답||맞힌 사람||정답 비율|
|1 초||128 MB||6||5||5||83.333%|
Witnesses, numbered from 1 to n, have made their testimonies in a court. Each testimony is a statement of the form: “the i-th witness agrees with the j-th witness” or “the i-th witness does not agree with the j-th witness”.
If the i-th witness agrees with the j-th witness then he agrees also with all the witnesses that the j-th witness agrees with. Similarly, the i-th witness does not agree with all the witnesses that the j-th witness does not agree with. We assume that every witness implicitly states: “I agree with myself”.
We say that witness A is not credible if from testimonies made in a court it follows that there exists a witness B such that A agrees with B and A does not agree with B.
Write a program that:
In the first line of the standard input there is a single integer n, 1 ≤ n ≤ 3,000, which is the number of witnesses. In the second line there is a single integer m, 0 ≤ m ≤ 8,000, which is the number of testimonies.
In each of the following m lines there are two integers i, j (1 ≤ i ≤ n, 1 ≤ |j| ≤ n), separated by a single space. If j is positive it describes a testimony: “the i-th witness agrees with the j-th witness”. If j is negative it means: “the i-th witness does not agree with the (-j)-th witness”.
In the standard output there should be written:
NIKT(which means “nobody” in Polish), if it follows from testimonies that there is no witness that is not credible,
6 12 1 3 1 6 2 -1 3 4 4 1 4 -2 4 5 5 -1 5 -3 5 2 6 5 6 4
1 3 4 6