#include <cstdio>
#include <vector>
#include "library.h"
using namespace std;
pair<int,int> adj[1005];
void Solve(int N)
{
for(int i = 0; i < N; i++) adj[i].first = adj[i].second = -1;
for(int i = 0; i < N; i++)
{
int lo = 0, hi = N-1, except = -1, fin = -1;
if(adj[i].second != -1) continue;
if(adj[i].first != -1) except = adj[i].first;
while(lo <= hi)
{
int x = (lo+hi)/2;
vector<int> m1(N, 0);
int cnt = 0;
for(int j = lo; j <= x; j++) if(j != except) m1[j] = 1, cnt++;
m1[i] = 0;
if(i <= x && i >= lo) cnt--;
int mcount = 0;
if(cnt == 0) mcount = -1;
else mcount = Query(m1);
m1[i] = 1;
int mafter = Query(m1);
if(mafter <= mcount)
{
fin = x;
hi = x-1;
}
else lo = x+1;
}
if(fin != -1)
{
if(adj[i].first != -1) adj[i].second = fin;
else adj[i].first = fin;
if(adj[fin].first != -1) adj[fin].second = i;
else adj[fin].first = i;
}
}
vector<int> res;
int start = 0;
for(int i = 0; i < N; i++)
{
if(adj[i].second == -1)
{
start = i;
break;
}
}
vector<bool> answered(N,false);
while(res.size() < N)
{
res.push_back(start+1);
answered[start] = true;
int prev = start;
start = adj[start].first;
if(answered[start]) start = adj[prev].second;
}
Answer(res);
}