진법 정수 상수

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

문제

에이다(Ada) 프로그래밍 언어에서는 123, 8#123#, 16#abc#와 같은 형태로 정수 상수를 적을 수 있다. 이들은 각각 정수 123, 83(123을 8진법으로 읽은 값), 2739(abc를 16진법으로 읽은 값)를 나타낸다.

정수 상수는 다음 두 가지 중 하나이다.

  • 10진 정수: 각 자리가 10보다 작은(즉 09) 한 개 이상의 숫자로 이루어진다.
  • 진법 정수: 밑수(base)를 적은 뒤 #, 그다음 한 개 이상의 숫자, 마지막으로 닫는 #를 적는다. 각 숫자는 밑수보다 반드시 작아야 한다. 문자 a부터 f까지는 각각 자릿값 10부터 15를 나타낸다.

실제 에이다에서는 밑수를 10진수로 적어야 하지만, 이 문제에서는 밑수 자체도 위의 어떤 형태로든 적을 수 있으며, 그 값이 2 이상 16 이하의 정수이기만 하면 된다. 예를 들어 2#101##123#에서 두 번째 그룹의 밑수는 2#101#이고 그 값은 5이다.

주어진 각 문자열이 전체로서 올바른 정수 상수인지 판별하여라.

입력

첫째 줄에 양의 정수 $n$이 주어진다. 이어지는 $n$개의 줄에 각각 문자열이 하나씩 주어진다. 각 문자열에는 공백이 없으며 길이는 1 이상 80 이하이다.

출력

각 입력 문자열에 대해, 위 규칙에 따라 올바른 정수 상수이면 yes를, 그렇지 않으면 no를 한 줄에 하나씩 출력한다.