This is an interactive problem.

You are given an array $$$x_1, \ldots, x_n$$$ of integers from $$$1$$$ to $$$n$$$. The jury also has a fixed but hidden array $$$y_1, \ldots, y_n$$$ of integers from $$$1$$$ to $$$n$$$. The elements of array $$$y$$$ are unknown to you. Additionally, it is known that for all $$$i$$$, $$$x_i \neq y_i$$$, and all pairs $$$(x_i, y_i)$$$ are distinct.

The jury has secretly thought of one of two objects, and you need to determine which one it is:

- Object A: A directed graph with $$$n$$$ vertices numbered from $$$1$$$ to $$$n$$$, and with $$$n$$$ edges of the form $$$x_i \to y_i$$$.
- Object B: $$$n$$$ points on a coordinate plane. The $$$i$$$-th point has coordinates $$$(x_i, y_i)$$$.

To guess which object the jury has thought of, you can make queries. In one query, you must specify two numbers $$$i, j$$$ $$$(1 \leq i, j \leq n, i \neq j)$$$. In response, you receive one number:

- If the jury has thought of Object A, you receive the length of the shortest path (in edges) from vertex $$$i$$$ to vertex $$$j$$$ in the graph, or $$$0$$$ if there is no path.
- If the jury has thought of Object B, you receive the Manhattan distance between points $$$i$$$ and $$$j$$$, that is $$$|x_i -x_j| + |y_i - y_j|$$$.

You have $$$2$$$ queries to determine which of the objects the jury has thought of.

Input format:
Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 1000$$$). The description of the test cases follows.
Example Input 0:
2
3
2 2 3

1

0

5
5 1 4 2 3

4

4

Example Output 0:
? 2 3

? 1 2

! A

? 1 5

? 5 1

! B

Notes:
In the first test case, $$$x = [2,2,3]$$$, $$$y = [1,3,1]$$$ and Object A is guessed.

In the second test case, $$$x = [5,1,4,2,3]$$$, $$$y = [3,3,2,4,1]$$$ and Object B is guessed.

Example input:
2
3
2 2 3

1

0

5
5 1 4 2 3

4

4


Example output:
? 2 3

? 1 2

! A

? 1 5

? 5 1

! B