유통기한

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

자취 11년 차 한별이는 슬슬 냉장고에 있는 음식들의 유통기한이 지나지 않았을지 걱정이다. 그러나 유통기한으로 적혀 있는 날짜의 연도/월/일 순서를 알 수 없어서 고민하고 있다.

날짜를 표기하는 방법은 국가에 따라 다르며, 크게 세 가지 방법이 있다.

  • 연도/월/일: 대한민국, 일본, 중국, 리투아니아, 몽골, 부탄, 헝가리 등 동아시아권 국가
  • 일/월/연도: 그리스, 네덜란드, 덴마크, 독일, 러시아, 말레이시아, 멕시코, 방글라데시, 베트남, 불가리아, 사우디아라비아, 아르헨티나, 아이슬란드, 이집트, 이스라엘, 이탈리아, 인도네시아, 체코, 칠레, 콜롬비아, 태국, 포르투갈 등 대부분의 국가
  • 월/일/연도: 미국, 괌, 필리핀 등 일부 영어권 국가

따라서 예를 들어 10/12/32라는 날짜는

  • 일/월/연도로 해석할 경우 2032203212121010
  • 월/일/연도로 해석할 경우 2032203210101212

중 하나가 된다. 12123232일이라는 날짜는 없으므로 적어도 연도/월/일 형식(2010201012123232일)은 아니라는 것을 알 수 있다.

한별이는 냉장고 음식들의 유통기한을 보고 세 가지 방법 중 유효한 날짜로 해석 가능한 어떤 형식으로 해석해도 음식이 안전한지 알고 싶다. 한별이를 도와 음식이 안전한지 판단하는 프로그램을 작성해 보자.

입력

첫 번째 줄에 오늘 날짜를 나타내는 정수 YY, MM, DD가 공백으로 구분되어 주어진다. 이는 오늘이 (2000+Y)\left(2000+Y\right)MMDD일이라는 것을 의미한다. (0Y990 \le Y \le 99, (2000+Y)\left(2000+Y\right)MMDD일은 올바른 날짜)

다음 줄에는 냉장고의 음식의 개수 NN이 주어진다. (1N300,0001 \le N \le 300\\,000)

다음 NN개의 줄에는 각 줄마다 음식의 유통기한을 나타내는 정수 AA, BB, CC가 공백으로 구분되어 주어진다. 음식에는 유통기한이 AA/BB/CC의 형식으로 적혀 있다. (0A,B,C990 \le A, B, C \le 99)

모든 날짜는 20002000년에서 20992099년 사이이며, 연도는 100100으로 나눈 나머지만이 주어진다.

출력

각 날짜마다 한 줄에 하나씩 다음 중 한 가지를 출력한다.

  • invalid: 어떤 형식으로 해석해도 올바르지 않은 날짜인 경우
  • safe: 해석 가능한 모든 형식에 대해 오늘 날짜가 유통기한보다 이전이거나 같은 날일 경우
  • unsafe: 나머지 경우

힌트

11월, 33월, 55월, 77월, 88월, 1010월, 1212월은 각각 3131일까지 있다.

44월, 66월, 99월, 1111월은 각각 3030일까지 있다.

22월은 윤년인 경우 2929일, 윤년이 아닌 경우 2828일까지 있다. 문제에서 주어지는 연도에 한정할 경우, 44로 나누어떨어지는 연도는 모두 윤년이다.