package main
import (
"fmt"
"sort"
)
func main() {
var t int
if _, err := fmt.Scan(&t); err != nil {
return
}
for tc := 0; tc < t; tc++ {
var n int
fmt.Scan(&n)
if n == 1 {
fmt.Println("! 1")
continue
}
type Player struct {
id int
d int
}
players := make([]Player, n)
for i := 1; i <= n; i++ {
mask := make([]byte, n)
for j := 0; j < n; j++ {
if i-1 == j {
mask[j] = '0'
} else {
mask[j] = '1'
}
}
fmt.Printf("? %d %s\n", i, string(mask))
var d int
fmt.Scan(&d)
players[i-1] = Player{id: i, d: d}
}
sort.Slice(players, func(i, j int) bool {
return players[i].d < players[j].d
})
sum := 0
cut := 0
for i := 0; i < n-1; i++ {
sum += players[i].d
k := i + 1
if sum == k*(k-1)/2 {
cut = k
}
}
ans := make([]byte, n)
for i := 0; i < n; i++ {
ans[i] = '0'
}
for i := cut; i < n; i++ {
ans[players[i].id-1] = '1'
}
fmt.Printf("! %s\n", string(ans))
}
}