코드 수열

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

문제

비밀 코드로 만들어진 수열 SS의 다음 값을 알아내려고 한다. 이 코드는 다음 절차로 수열을 만들었다.

먼저 00 이상 2929 이하의 각 kk에 대해 00 이상 1000610006 이하의 수 CkC_k를 하나 고른다.

그다음 00 이상 10910^9 이하의 각 정수 nn에 대해 다음을 수행한다.

  • nn을 이진법으로 쓴다.
  • nn의 이진 표현에서 켜져 있는 모든 비트 kk에 대해 CkC_k를 꺼낸다. 예를 들어 n=5n = 5이면 0번 비트와 2번 비트가 켜져 있으므로 C0C_0C2C_2를 꺼낸다.
  • 꺼낸 값을 모두 더하고 1000710007로 나눈 나머지를 SnS_n으로 둔다.

수열 SS에서 연속한 값 몇 개를 받는다. 이 값들이 수열의 어느 위치에서 시작하는지는 모르지만, 뒤에 값이 적어도 하나 더 있다는 것은 안다. 수열을 만들 때 고른 CkC_k가 무엇인지도 모른다.

주어진 값 다음에 오는 수를 구한다. 입력만으로 정할 수 없으면 UNKNOWN을 출력한다.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다.

각 테스트 케이스는 두 줄이다.

  • 첫 줄에는 알고 있는 SS의 원소 개수 NN이 주어진다.
  • 둘째 줄에는 알고 있는 원소 NN개가 공백 하나로 구분되어 주어진다. 각 원소는 00 이상 1000610006 이하이다.

제한

  • 1T201 \le T \le 20
  • 1N301 \le N \le 30
  • 각 테스트 케이스는 위 절차로 만들어진 어떤 수열의 연속한 구간이고, 그 구간 뒤에는 값이 적어도 하나 더 있다.

출력

각 테스트 케이스마다 "Case #XX: YY" 형식으로 한 줄 출력한다. XX는 1부터 시작하는 테스트 케이스 번호이고, YY는 다음에 오는 수이다. 다음 수를 정할 수 없으면 YY 자리에 UNKNOWN을 쓴다.

노트

첫 번째 예제에서는 C0C_0, C1C_1, C2C_2가 각각 1, 2, 4이고 주어진 값이 n=1n = 1에서 시작했을 수 있다. 그렇다면 C3C_3을 알 수 없으므로 다음 수는 무엇이든 될 수 있고, 답은 UNKNOWN이다.

두 번째 예제에서는 CkC_k를 전부 알아낼 수 없고 nn이 무엇인지도 알 수 없다. 그래도 이 절차로 만들어진 어떤 수열에서든 1, 10, 11, 200이 이 순서로 나타나면 그다음 값은 항상 201임을 증명할 수 있다.