숫자 맞추기

시간 제한1초메모리 제한128 MB

문제

스탠과 올리가 숫자 맞추기 게임을 한다. 스탠은 1 이상 10 이하의 정수 하나를 마음속으로 정하고, 올리는 그 수를 맞혀야 한다. 올리가 수를 하나 말할 때마다 스탠은 그 수가 자신이 정한 수보다 큰지, 작은지, 아니면 정확히 같은지를 알려 준다.

게임을 여러 번 하던 올리는 스탠이 거짓말을 하고 있을지도 모른다는 의심이 들었다. 다시 말해, 올리가 수를 말할 때마다 스탠이 마음속의 수를 몰래 바꿀 수도 있다고 생각한 것이다. 이런 일이 실제로 일어났는지 확인하기 위해, 올리는 자신이 외친 수와 스탠이 해 준 답변을 모두 기록해 두었다.

올리가 외친 수들과 스탠의 답변들이 주어질 때, 스탠의 답변이 서로 모순되어 반드시 거짓말을 한 것인지, 아니면 하나의 수로 모든 답변을 설명할 수 있어 정직했을 가능성이 있는지 판정하는 프로그램을 작성하시오.

입력

입력은 여러 개의 게임으로 이루어진다. 각 게임에서는 올리가 외친 수와 그에 대한 스탠의 답변이 번갈아 가며 주어진다.

올리가 외친 수는 1 이상 10 이하의 자연수이다. 스탠의 답변은 다음 세 가지 중 하나이다.

  • too high: 올리가 외친 수가 스탠이 정한 수보다 클 때
  • too low: 올리가 외친 수가 스탠이 정한 수보다 작을 때
  • right on: 올리가 외친 수가 스탠이 정한 수와 정확히 같을 때

스탠의 답변이 right on이면 그 게임은 끝난다. 입력의 마지막 줄에는 0이 주어지며, 이는 입력의 끝을 의미한다.

출력

각 게임에 대해, 스탠의 답변이 서로 모순되어 거짓말을 한 것이 확실하면 Stan is dishonest를, 하나의 수로 모든 답변을 설명할 수 있으면 Stan may be honest를 한 줄에 하나씩 출력한다.