금요일

N이 최대 10^15일 때, 2012년 12월 21일 이후의 N번째 금요일 날짜를 그레고리력 윤년 규칙에 따라 구한다.

보통7수학이분 탐색구현정수론아직 제출이 없습니다시간 제한3초메모리 제한512 MB

문제

2012년 12월 21일은 금요일이었다. 이날보다 뒤에 오는 금요일을 모두 날짜 순서대로 적어 목록을 만든다. 목록의 첫 항목은 2012년 12월 21일 다음에 오는 금요일이고, 12월 21일 자체는 목록에 들어가지 않는다.

목록이 맞는지 확인하려면 달력 규칙을 정확히 알아야 한다. 윤년은 4로 나누어떨어지는 해이다. 다만 100으로 나누어떨어지는 해는 윤년이 아니고, 그중 400으로 나누어떨어지는 해는 다시 윤년이다. 이 규칙은 아주 먼 미래까지 그대로 유지된다고 가정한다.

각 달의 순서와 일수는 다음과 같다.

  • 1월 (31)
  • 2월 (28, 윤년에는 29)
  • 3월 (31)
  • 4월 (30)
  • 5월 (31)
  • 6월 (30)
  • 7월 (31)
  • 8월 (31)
  • 9월 (30)
  • 10월 (31)
  • 11월 (30)
  • 12월 (31)

목록의 NN번째 날짜를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 이어지는 TT개 줄에는 각각 정수 NN이 하나씩 주어진다.

제한

  • 1T500001 \le T \le 50000
  • 1N10151 \le N \le 10^{15}

출력

각 테스트 케이스마다 목록의 NN번째 날짜를 한 줄에 출력한다.

형식은 MMM DD, YYYY이다. MMM은 영어 월 이름을 줄이지 않고 그대로 쓰되 첫 글자만 대문자로 한다(January, February, March 등). DD는 일이며 앞에 0을 채우지 않는다. YYYY는 연도이고 네 자리보다 길 수 있다. 월 이름과 일 사이에는 공백 한 칸을 두고, 일 뒤에는 쉼표와 공백 한 칸을 둔다.