Це інтерактивна задача.
KUPC-кун написав програму, яка розв'язує таку задачу.
Дано дерево $T = (V, E)$ з $N$ вершинами. Для послідовності $\{a_1, \dots, a_k\}$ вершин дерева $T$ довжини $k$ визначимо її оцінку так. - Нехай $d(u, v)$ — кількість ребер на шляху між вершинами $u$ та $v$ в $T$. Тоді оцінка дорівнює $\prod_{i=1}^k d(a_i, a_{(i \bmod k)+1})$.
Задано підмножину $S$ множини $V$. Для кожного $1 \le k \le N$ знайдіть таке значення $q_k$. - Сума оцінок за всіма послідовностями вершин $\{a_1, \dots, a_k\}$ довжини $k$, елементи яких належать $S$, узята за модулем $2^{61} - 1$.
KUPC-кун заздалегідь таємно зберігає інформацію про дерево $T$ і продовжує використовувати $T$ як дерево, що подається програмі.
Ви намагаєтеся відновити інформацію про листки за допомогою описаної вище програми. Нехай кількість вершин дерева дорівнює $N$; ви можете поставити таке запитання щонайбільше $N$ разів.
- Виберіть підмножину $S$ множини $V$ і запитайте вивід програми.
Припускаючи, що програма KUPC-куна правильна, визначте всі листки, що містяться в дереві $T$, за інформацією, отриманою через запитання.
Журі не є адаптивним, а дерево $T$ фіксоване до початку взаємодії.
Протокол взаємодії
Спочатку зі стандартного вводу подається $N$. ($2 \le N \le 50$)
Для кожного запитання виводьте в стандартний вивід у такому форматі.
? s1s2...sN
Тут $s_1s_2\cdots s_N$ — рядок довжини $N$, що представляє підмножину $S$, де $s_i = 1$, якщо $i \in S$, і $s_i = 0$, якщо $i \notin S$.
У відповідь зі стандартного вводу подається таке.
q1 q2 ... qN
Щойно ви визначите всі листки, виведіть свою відповідь у такому форматі.
! t1t2...tN
Тут $t_1t_2\cdots t_N$ — рядок довжини $N$, де $t_i = 1$, якщо $i$ є листком, і $t_i = 0$, якщо вона не є листком.
Після цього виводу негайно завершіть роботу програми.
Щоразу, коли ви щось виводите, додавайте символ нового рядка в кінці та очищуйте буфер стандартного виводу (flush).
Приклад
Приклад вхідних даних 1
5 0 8 0 32 0 0 44 108 968 3960 0 0 0 0 0 0 76 348 3336 22200
Приклад вихідних даних 1
? 00101 ? 11001 ? 10000 ? 11111 ! 11001
Примітка
Для першого прикладу множина ребер дерева, яку таємно зберігає журі, має вигляд $(1, 3), (2, 3), (3, 4), (4, 5)$.
У першому запитанні $S = \{3, 5\}$.
Зауважте, що $d(3, 3) = 0, d(3, 5) = d(5, 3) = 2, d(5, 5) = 0$.
Наприклад, існують такі $4$ послідовності вершин $a$ довжини $2$, елементи яких належать $S$.
- Якщо $a = (3, 3)$, то оцінка цієї послідовності дорівнює $d(3, 3) \times d(3, 3) = 0 \times 0 = 0$.
- Якщо $a = (3, 5)$, то оцінка цієї послідовності дорівнює $d(3, 5) \times d(5, 3) = 2 \times 2 = 4$.
- Якщо $a = (5, 3)$, то оцінка цієї послідовності дорівнює $d(5, 3) \times d(3, 5) = 2 \times 2 = 4$.
- Якщо $a = (5, 5)$, то оцінка цієї послідовності дорівнює $d(5, 5) \times d(5, 5) = 0 \times 0 = 0$.
Журі відповідає числом $8$ для $q_2$, що є остачею від ділення $0 + 4 + 4 + 0$ на $2^{61} - 1$.
Обчислюючи аналогічно для інших довжин послідовностей, отримуємо відповідь журі 0 8 0 32 0.
Листками цього дерева є вершини $1, 2, 5$, і виведення ! 11001 правильно завершує визначення листків.