시간 제한
메모리 제한
시간 제한
2초
메모리 제한
128 MB
한 학원의 선생님은 가위바위보를 매우 좋아한다. 학생들이 수업 중 딴짓을 하다 걸리면, 가위바위보 예측 게임으로 처벌 여부를 정하곤 한다.
어느 날 N명의 학생이 한꺼번에 걸렸다. 학생 수가 너무 많아 선생님은 새로운 규칙을 정했다. 선생님은 혼자서 총 M번 가위바위보를 하고, 학생들은 선생님이 몇 번째에 무엇을 낼지 예측한다.
각 학생은 예측을 두 가지까지 말할 수 있다. 예를 들어 "세 번째에는 가위를 내고, 네 번째에는 바위를 낸다"처럼 두 번의 차례와 손동작을 고른다. 두 예측을 모두 맞힐 필요는 없고, 둘 중 하나라도 맞으면 그 학생은 처벌을 피할 수 있다.
학생들은 선생님의 패턴을 파악해, 그날 선생님이 보를 내지 않는다는 사실을 알고 있다. 따라서 각 차례에서 선생님이 낼 수 있는 것은 가위 또는 바위뿐이다.
학생들의 예측이 모두 주어졌을 때, 모든 학생이 적어도 하나의 예측을 맞힐 수 있는 손동작 순서가 존재하는지 판별하라.
첫째 줄에 두 정수 N, M이 주어진다. (1 <= N <= 10,000, 1 <= M <= 10,000)
다음 N개의 줄에는 각 학생의 두 예측을 나타내는 정수 x, y가 주어진다. (1 <= |x|, |y| <= M)
x가 양수이면 선생님이 x번째에 가위를 낸다는 뜻이고, x가 음수이면 선생님이 |x|번째에 바위를 낸다는 뜻이다. y도 같은 방식으로 해석한다.
모든 학생이 적어도 하나의 예측을 맞힐 수 있으면 ^_^를 출력하고, 불가능하면 OTL을 출력한다.