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

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

To do this, you can ask questions: you can choose a binary string b_1b_2\dots b_n and you will receive the binary string b_{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 n: the length of the permutation.

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

  • "?\ b_1b_2\dots b_n", where b_i\in\{0, 1\}: The grader will return the binary string b_{a_1}b_{a_2}\dots b_{a_n}.
  • "!\ a_1\ a_2 \dots a_n": report that the hidden permutation is a_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

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

Example

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

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