단어 2

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

문제

01로만 이루어진 이진 문자열에 작용하는 함수 hh를 정의한다. hh는 문자열의 모든 01로, 모든 1을 두 글자 문자열 10으로 (동시에, 서로 독립적으로) 바꾼다. 예를 들어 hh1001101110으로 보내고, 빈 문자열은 빈 문자열로 보낸다. hh는 단사(injective) 함수이다. hkh_khhkk번 합성한 함수를 뜻하며, h0h_0은 항등함수이므로 h0(w)=wh_0(w) = w이다.

한 글자짜리 문자열 0에 대해 hk(0)h_k(0)k=0,1,2,k = 0, 1, 2, \dots 순서로 나열하면, 이 수열은 다음과 같이 시작한다.

0, 1, 10, 101, 10110, 10110101, ...

문자열 xx가 문자열 yy 안에서 연속한 한 덩어리로 나타나면 xxyy의 부분 문자열이라고 한다. 정수 k1,k2,,knk_1, k_2, \dots, k_n이 주어질 때, 이어 붙인 문자열

hk1(0)hk2(0)hkn(0)h_{k_1}(0)\,h_{k_2}(0)\cdots h_{k_n}(0)

이 어떤 mm에 대해 hm(0)h_m(0)의 부분 문자열이 되는지 판정하고, 된다면 그러한 가장 작은 mm을 구하여라.

입력

첫 번째 줄에 정수 nn (1n1,000,0001 \le n \le 1{,}000{,}000)이 주어진다. 두 번째 줄에는 nn개의 음이 아닌 정수 k1,k2,,knk_1, k_2, \dots, k_n (0ki1090 \le k_i \le 10^9)이 공백 하나로 구분되어 주어진다.

출력

hk1(0)hk2(0)hkn(0)h_{k_1}(0)\,h_{k_2}(0)\cdots h_{k_n}(0)hm(0)h_m(0)의 부분 문자열이 되는 가장 작은 음이 아닌 정수 mm을 한 줄에 출력한다. 그러한 mm이 존재하지 않으면 NIE를 출력한다.