#include <bits/stdc++.h>
#include "xylophone.h"
using namespace std;
#define ll long long
#define all(x) (x).begin(), (x).end()
#define endl '\n'
static int diff[5001];
static int A[5001];
void solve(int N) {
for (int i = 1; i <= N; i++)
A[i] = -1;
int idx_N = -1;
int idx_1 = -1;
int lo = 1;
int hi = N;
while (lo <= hi) {
int mid = (lo + hi) >> 1;
if (query(1, mid) == N - 1) {
idx_N = mid;
hi = mid - 1;
} else {
lo = mid + 1;
}
}
lo = 1;
hi = idx_N - 1;
while (lo <= hi) {
int mid = (lo + hi) >> 1;
if (query(mid, idx_N) == N - 1) {
idx_1 = mid;
lo = mid + 1;
} else {
hi = mid - 1;
}
}
A[idx_N] = N;
A[idx_1] = 1;
diff[idx_1] = 0;
for (int i = 1; i <= N; i++) {
if (i == idx_1) continue;
if (i > idx_1)
diff[i] = query(idx_1, i);
else
diff[i] = query(i, idx_1);
}
for (int j = idx_1 - 1; j >= 1; j--) {
if (j == idx_N) continue;
if (diff[j] == diff[j + 1]) {
int Q = query(j, j + 1);
A[j] = A[j + 1] - Q;
} else {
A[j] = A[j + 1] + (diff[j] - diff[j + 1]);
}
}
for (int j = idx_1 + 1; j <= N; j++) {
if (j == idx_N) continue;
if (diff[j] == diff[j - 1]) {
int Q = query(j - 1, j);
A[j] = A[j - 1] - Q;
} else {
A[j] = A[j - 1] + (diff[j] - diff[j - 1]);
}
}
cout << idx_1 << ' ' << idx_N << endl;
for (int i = 1; i <= N; i++)
cout << A[i] << ' ';
cout << endl;
for (int i = 1; i <= N; i++)
answer(i, A[i]);
}