View problem - Periodicity (POI11_okr)

Time limitMemory limit# of submissions# of submitted usersSolved #Accepted user ratio
1000 ms32 MiB1044100.00%

Byteasar, the king of Bitotia, has ordained a reform of his subjects' names. The names of Bitotians often contain repeating phrases, e.g., the name Abiabuabiab has two occurrences of the phrase abiab. Byteasar intends to change the names of his subjects to sequences of bits matching the lengths of their original names. Also, he would very much like to reflect the original repetitions in the new names.

In the following, for simplicity, we will identify the upper- and lower-case letters in the names. For any sequence of characters (letters or bits) w=w1w2wkw=w_1w_2…w_k we say that the integer pp (1p<k1 \le p < k) is a period of ww if wi=wi+pw_i=w_{i+p} for all i=1,,kpi=1,\ldots,k-p. We denote the set of all periods of ww by Per(w)Per(w). For example, Per(ABIABUABIAB)=6,9Per(\texttt{ABIABUABIAB})={6,9}, Per(01001010010)=5,8,10Per(\texttt{01001010010})={5,8,10}, and Per(0000)=1,2,3Per(\texttt{0000})={1,2,3}.

Byteasar has decided that every name is to be changed to a sequence of bits that:

  • has length matching that of the original name,
  • has the same set of periods as the original name,
  • is the smallest (lexicographically [1]) sequence of bits satisfying the previous conditions.

For example, the name ABIABUABIAB should be changed to 01001101001, BABBAB to 010010, and BABURBAB to 01000010.

Byteasar has asked you to write a program that would facilitate the translation of his subjects' current names into new ones. If you succeed, you may keep your current name as a reward!

Input

In the first line of the standard input there is a single integer kk - the number of names to be translated (1k201 \le k \le 20). The names are given in the following lines, one in each line. Each name consists of no less than 11 and no more than 200,000200,000 upper-case (capital) letters (of the English alphabet).

In the test worth 30% of the points each name consists of at most 2020 letters.

Output

Your program should print kk lines to the standard output. Each successive line should hold a sequence of zeroes and ones (without spaces in between) corresponding to the names given on the input. If an appropriate sequence of bits does not exists for some names, then "XXX" (without quotation marks) should be printed for that name.

Example

For the input data:

3
ABIABUABIAB
BABBAB
BABURBAB

the correct result is:

01001101001
010010
01000010

[1] The sequence of bits x1x2xkx_1 x_2 \ldots x_k is lexicographically smaller than the sequence of bits y1y2yky_1 y_2 \ldots y_k if for some ii, 1ik1 \le i \le k, we have xi<yix_i < y_i and for all j=1,,i1j=1,\cdots,i-1 we have xj=yjx_j = y_j.

Task author: Wojciech Rytter.