#include "insects.h"
#include <bits/stdc++.h>
using namespace std;
int n;
vector<bool> ins;
void rem(int i) {
if (ins[i]) move_outside(i);
ins[i] = false;
}
void add(int i) {
if (!ins[i]) move_inside(i);
ins[i] = true;
}
void dbg(vector<int> a) {
cout << "DBG: ";
for (auto x: a) cout << x << " ";
cout << "\n";
}
int min_cardinality(int N) {
n = N;
ins.assign(n, false);
int types = 0;
for (int i = 0; i < n; i++) {
add(i);
int x = press_button();
if (x > 1) {
rem(i);
}
else types++;
}
if (types == 1) {
return n;
}
int lo = 1, hi = n / types;
int fin = n / types + 1;
while (lo <= hi) {
int mid = (lo + hi) / 2;
for (int i = 0; i < n; i++) {
rem(i);
}
int haveIn = 0;
for (int i = 0; i < n; i++) {
add(i);
haveIn++;
if (press_button() > mid) {
rem(i);
haveIn--;
}
}
int should = types * mid;
//dbg({mid, should});
if (haveIn < should) {
hi = mid-1;
}
else {
fin = mid;
lo = mid+1;
}
}
return fin;
}