#include "minerals.h"
#include <bits/stdc++.h>
using namespace std;
mt19937 x(chrono::high_resolution_clock::now().time_since_epoch().count());
set<int> in_machine;
set<int> out_machine;
set<int> answered;
int siz;
int ran(set<int> &s){
	auto it = s.begin();
	int powt=x()%((int)s.size());
	while(powt--)it++;
	return *it;
}
void MyQuery(int v){
	siz=Query(v);
}
void Solve(int N){
	vector<pair<int,int>> ans;
	set<int> to_guess;
	for (int i = 1; i<=2*N; i++){
		to_guess.insert(i);
		out_machine.insert(i);
	}
	while(to_guess.size()){
		int prv=siz;
		int el=-1,el2=-1;
		while(out_machine.size()){
			el=ran(out_machine);
			out_machine.erase(el);
			in_machine.insert(el);
			MyQuery(el);
			if (prv==siz)break;
			prv=siz;
		}
		while(in_machine.size()){
			el2=ran(in_machine);
			while(el2==el)el2=ran(in_machine);
			in_machine.erase(el2);
			out_machine.insert(el2);
			MyQuery(el2);
			if (prv==siz)break;
			prv=siz;
		}
		ans.push_back({el,el2});
		to_guess.erase(el);
		to_guess.erase(el2);
		in_machine.erase(el);
		out_machine.erase(el2);
	}
	for (auto [a,b] : ans)Answer(a,b);
}
/*
4
1 5
2 6
3 4
7 8
*/
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |