CSES - Permuted Binary Strings
  • Time limit: 1.00 s
  • Memory limit: 512 MB

There is a hidden permutation a1,a2,,ana_1, a_2,\dots, a_n of integers 1,2,,n1, 2,\dots, n. Your task is to find this permutation.

To do this, you can ask questions: you can choose a binary string b1b2bnb_1b_2\dots b_n and you will receive the binary string ba1ba2banb_{a_1}b_{a_2}\dots b_{a_n}.

Interaction

This is an interactive problem. Your code will interact with the grader using standard input and output. You should start by reading a single integer nn: the length of the permutation.

On your turn, you can print one of the following:

  • "? b1b2bn?\ b_1b_2\dots b_n", where bi{0,1}b_i\in\{0, 1\}: The grader will return the binary string ba1ba2banb_{a_1}b_{a_2}\dots b_{a_n}.
  • "! a1 a2an!\ a_1\ a_2 \dots a_n": report that the hidden permutation is a1,a2,,ana_1, a_2,\dots, a_n. Your program must terminate after this.

Each line should be followed by a line break. You must make sure the output gets flushed after printing each line.

Constraints

  • 1n10001 \le n \le 1000
  • you can ask at most 1010 questions of type ??

Example

3
? 100
100
? 010
001
? 001
010
! 1 3 2

Explanation: The hidden permutation is [1,3,2][1, 3, 2]. In the first question b1b2b3=100b_1b_2b_3 = 100 and the grader returns ba1ba2ba3=b1b3b2=100b_{a_1}b_{a_2}b_{a_3} = b_1b_3b_2 = 100. In the second question b1b2b3=010b_1b_2b_3 = 010 and the grader returns b1b3b2=001b_1b_3b_2 = 001.