#include <bits/stdc++.h>
#include "avoid.h"
using namespace std;
const int N = 1000;
#define int unsigned long long
void query(const vector<int>& v)
{
vector<signed> q;
for (int x : v) q.push_back(x);
send(q);
}
int R[N] = {
11547268,79848464,48660512,101458065,38438980,134388,9378816,21591040,101925136,868564,37849696,1192268,28311623,2188338,2196053,68329572,33819286,16918156,34746480,26544768,38012291,41980073,72638980,52183297,122683496,34023554,76585026,36997696,27429184,1182514,91521028,86651008,69763524,1743136,274244,3334153,15746096,1713952,100762119,4253376,2104078,74616848,21022217,25448641,3047476,8520766,42243208,4723801,36198688,35291276,34182660,18399299,18358438,118555657,93421588,93323576,3492000,67522828,196727,18090888,44564758,2238577,51220496,42045489,69215322,25825488,2674852,25821229,67576081,35766472,21498258,86509864,17924261,44306501,92800028,118751426,27280913,26231948,17273104,56365312,109193480,51709970,94896402,34107474,4596609,79700025,10527045,274765,32506512,67187873,17172960,10159424,20709457,73402736,46743564,105447508,33892644,50409672,74584194,84674610,18547010,12798017,26361867,1944064,98570756,69012512,67219736,18145410,18011392,50487841,79774800,72616640,1262680,3672769,3719490,1327909,33701122,17052968,71696668,11668486,477408,8390091,1639525,10257928,19956786,9047810,67228706,140854,60950576,20512976,4313222,102809768,100864176,67701827,67388446,95291392,109202560,67652296,104991424,1755216,86057664,36577286,39338118,34605401,92308688,20230160,2427992,6848721,12864288,42107155,1050750,18155020,17993795,79037456,33655109,16959234,2757448,101193765,17629988,67739698,25204750,85076002,3169412,92299616,8389491,4231947,9013393,12059401,35148356,10536160,9033984,89329792,67487756,67109876,289444,4989640,6841356,1388690,100958266,7366752,2886669,33821719,19816464,33558067,1312198,47349772,92807685,297735,21271688,8489995,22053450,415108,48271432,25235809,17215554,245811,12611846,17332234,72369426,25187108,25756384,50643336,72616209,2135574,2368060,58720797,33712292,19411296,42008775,35955332,81805640,28851,8454780,34655298,2228462,4360521,58874368,71902288,68452547,3818756,100966659,88212020,42734098,17380736,34132616,67197488,37882936,30417925,10174980,42487970,864848,4751848,4277774,17963057,68715106,88150065,35774474,8466579,8537448,51445818,79922208,14691520,51471362,220165,71320364,117580866,4217192,11012658,50465665,1582215,26348304,35686556,10560804,4330161,88096946,46155017,76595842,12629152,38016552,72090889,3147576,31818240,26558978,7078576,33718439,527702,6299943,7394048,584738,10963456,19409480,47251481,19443200,42344737,13516818,54559002,117571986,109586435,71733284,60293266,83900000,2235468,68831297,12856356,112214536,51119202,33819845,1708569,100893441,39324165,69800136,67522641,54772224,102781122,35718921,29983760,69473832,109072412,25272897,35933824,1180565,57755648,9449795,42338468,5777667,30720032,68170026,35983442,71419976,38175761,4867728,38021644,17434185,71346832,3408461,84460568,84199489,105710082,31654020,71470464,1216260,6947466,67180294,29368403,68323608,38880324,55705752,35664705,36902914,2178688,40116497,101262353,8407397,42172489,102011520,33887560,51056705,3186851,21514848,38332420,54067205,86253581,2635913,51382036,72400978,77597073,59054088,7307520,1418260,13899810,40895514,71393921,75541,34902029,80220944,31990336,44707848,102252936,2064418,96732680,361753,111936032,578864,58885636,19038307,29417512,88121568,11870976,8430772,76021791,77900800,71896832,80873988,4359717,6491650,72941610,9863686,13648044,75507828,96534666,50636820,80232483,109348112,18645552,50859064,17498772,1102008,33624485,16804892,818688,101474310,92549126,16965893,67502684,85000835,6738432,38084627,8482112,71387684,73468961,34029637,17634314,34791808,50856534,6358196,76681229,632970,47186728,54810688,34605738,117457570,36214787,1204762,34292872,18943152,1835063,17893608,36192657,23085410,34886662,71317542,20979024,13673220,25526468,109314156,118523952,8757794,9188610,6955049,4211819,1261766,101717314,9809984,8956256,42483765,837808,176151,70029456,4417824,100898820,101739521,4268203,93094018,33903128,23200530,24675329,1280140,2196525,111162432,52728834,67282116,8526532,34130696,402459,41969809,22549648,16792225,1511468,79954076,19153252,26022020,2709584,623182,2740233,2523496,15400963,10496045,117709058,8563984,4274760,10880137,17039982,58781824,2363535,70779986,69731851,8394315,35685794,25372684,67183045,21168681,34808337,9324556,74268736,20718720,77697089,39895047,18095248,16798412,25172243,3167305,103850004,38798732,9511116,12847698,33579661,75860352,17178840,42780673,17042762,35793428,69797188,2425748,8479751,735266,17354790,4301196,44172323,2402689,84954432,13248578,17081232,19533866,102778902,19341576,88411138,117703329,4758786,85590209,38347056,11027084,840709,44313089,23072265,77676820,10719362,72941953,88883713,43058706,49287174,21594374,673155,67122247,50716704,68225564,85475496,1648661,68290617,8530578,94666785,15011852,5285394,6885928,1710274,2515744,26348673,11638016,38877312,17322013,67514816,3219857,21039203,6923296,72902784,213785,2151555,75710490,37011716,1192485,52433541,21827589,67374343,41689600,14227472,35920137,76034376,11628545,12061729,9180248,8425692,13656848,596618,104901696,84939169,3170984,37734,68458529,2662486,39996420,87085120,67781676,6568002,109101377,2138639,14750144,18424592,19996716,84548864,5587220,75501144,34132497,2296457,36380801,29623684,3031301,27661316,42509352,73662507,110106116,69996834,17041136,25467393,34702240,13636888,67773761,110134401,38130688,42205618,2120289,54539521,4850296,101335570,41979014,90702854,105392168,67175471,52592908,21082180,25727361,79692134,6766632,169076,80741891,16795735,37752484,68825360,4475417,76613651,43272576,58856520,78909632,5820428,70786560,71698570,11078676,173024,71574690,17336628,52500497,109183812,59047988,12859664,7355408,56658112,102958085,4918344,80621568,44435714,75940368,23240833,11026538,4276557,43018252,67438790,528757,3424458,22626384,13666881,2331232,40375362,102859048,191024,58982670,38866979,87848,9509125,67770892,86605860,18124904,38277395,17041589,1695873,37823712,38816036,23466049,4528336,527021,88412480,16958160,6406256,33722924,71589985,1643788,52578370,71336754,42010560,46696720,59384848,27300512,103416512,9785480,68166764,4738185,34079531,34376128,10498442,210456,551491,25575697,76227104,105254921,19596576,125903105,68493872,100816392,84282881,9094657,75529220,26738965,36774022,9045189,98050304,33560890,3252808,34894112,46664800,84060676,67732009,54665544,72220896,11763760,21037986,102836992,35415104,10666136,8542345,21173508,102763624,47194154,85091072,10757712,88096846,4623936,17029128,277728,41988194,101201536,39846067,54550736,33858376,69755216,35724324,11740168,1127435,88491012,17565121,7505930,14237954,77201992,26419488,18188608,74458369,6344746,84149017,92471366,5573123,9498634,36259344,69548033,109519872,84115593,5378472,109617232,2981914,5734472,1618182,92832544,102498881,1360426,4534538,10552994,75890727,34661400,287160,56725760,13533704,153312,5898342,14832896,17113145,4733458,9080858,104858738,52051988,102375584,68075904,8397733,1462856,50345997,19432840,119550336,18097488,36253716,38355266,36833825,9183460,25217304,1968650,8704082,52430150,40017986,113263110,218258,23351560,34735149,16392196,681240,4751407,114823200,14682197,92300928,8406678,3230276,84437249,38809986,70320804,75534502,793873,50548772,78774538,76334112,9257489,3166294,459587,100682145,19929116,8702152,100942736,2434115,51390788,22053232,67895754,36454497,51578432,34752048,16982535,68165790,89235968,67514914,68391937,27347016,16885296,8701313,69288483,77727328,16849012,50414673,104894672,8945891,21005958,5313220,20709894,38854689,46497936,50906272,18913570,13787266,21250217,67130899,119935008,1643297,41959892,104993156,96476288,1193108,52569248,68395138,33639728,4532545,2233745,38547552,52430891,50369074,104366337,299294,29901896,55609088,2098921,84478113,19149322,2626738,16780685,82575620,42080323,42352714,46662218,8428581,67775498,19933699,6328658,67260522,50921816,1246483,26752512,5331976,72483141,8849184,385097,88605324,78744064,25962632,104335384,25731121,67144078,83998722,67170437,1140771,67162952,76024708,68564996,5025816,52613136,69338396,52978180,11378816,85983452,69212820,14746182,69633153,85985381,9473416,77088001,399668,7635360,87310594,44302552,7488020,85493770,73426954,101196388,71618818,29397186,23200976,14418032,1839273,14090768,33593025,22055049,33566281,20973141,74465318,27304969,149964,35742048,21369874,83928330,34211489,52429432,71485473,9249044,33769500,2351140,9348160,10514736,68683285,27286560,101976416,69897232,43160320,35654246,9535594,52691475,6619362,37904395,69380256,100733514,4334930,37926913,12322946,623491,10543682,16943194,83954512,36462856,68162257,128204816,20009600,33786914,34251329,36873728,92420160,1197637,23617539,34899152,38731812,121839632,85496321,4696080,26215513,104072226,6432136,184769,21375009,9449217,18139652,22422080,16860866,121654784,17204516,69321240,
};
pair<signed, signed> scout(signed _, signed __)
{
if (R == 10 && H == 1)
{
for (int i = 0; i < 10; i++)
{
vector<int> ask;
for (int j = 0; j < N; j++)
if (j >> i & 1) ask.push_back(j + 1);
send(ask);
}
auto res = wait();
int x = 0;
for (int i = 0; i < 10; i++) x |= (res[i] << i);
return {x + 1, x + 1};
}
else if (R == 20 && H == 20)
{
int l = 0, r = N - 1;
while (l < r)
{
int mid = (l + r) >> 1;
vector<int> q1, q2;
for (int i = l; i <= mid; i++) q1.push_back(i + 1);
for (int i = mid + 1; i <= r; i++) q2.push_back(i + 1);
send(q1), send(q2);
auto res = wait();
if (res[0] == 1 && res[1] == 1)
{
int c1 = 0, c2 = 0;
for (int i = 0; (1 << i) <= mid - l + 1; i++)
{
vector<int> ask;
for (int j = 0; j < mid - l + 1; j++)
if (j >> i & 1) ask.push_back(l + j);
send(ask); c1++;
}
for (int i = 0; (1 << i) <= r - mid; i++)
{
vector<int> ask;
for (int j = 0; j < mid - l + 1; j++)
if (j >> i & 1) ask.push_back(mid + 1 + j);
send(ask); c2++;
}
auto res = wait();
int x = 0, y = 0;
for (int i = 0; i < c1; i++) x |= (res[i] << i);
for (int i = c1; i < c1 + c2; i++) y |= (res[i] << (i - c1));
return {x, y};
}
else if (res[0] == 1) r = mid;
else if (res[1] == 1) l = mid + 1;
else assert(0);
}
return {l, l};
}
int mx = 0;
for (int i = 0; i < N; i++)
for (int j = 0; j < 64; j++)
if (R[i] >> j & 1) mx = max(mx, j);
mx++;
for (int i = 0; i < mx; i++)
{
vector<int> ask;
for (int j = 0; j < N; j++)
if (R[j] >> i & 1) ask.push_back(j + 1);
query(ask);
}
auto res = wait();
int x = 0;
for (int i = 0; i < mx; i++) x |= ((int)res[i] << i);
for (int i = 0; i < N; i++)
for (int j = i; j < N; j++)
if (x == (R[i] | R[j])) return {i + 1, j + 1};
assert(0);
}