#include "koala.h"
#include<bits/stdc++.h>
using namespace std;
int n;
int cnt =0;
map<array<int,2>,int> mp;
int minValue(int n, int W) {
int cur = 0;
int b[n],r[n];
for(int i=1;i<n;i++) b[i]=0;
b[0] = 1;
playRound(b,r);
for(int i=1;i<n;i++)
{
if(r[i]==0)cur = i;
}
return cur;
}
bool cmp(int x,int y)
{
int b[n],r[n];
for(int i=0;i<n;i++) b[i] = 0;
b[x] = b[y] = n;
if(mp[{x,y}])
return mp[{x,y}]-100;
cnt++;
assert(cnt<=700);
playRound(b,r);
mp[{x,y}] = 100+ r[x]<r[y];
mp[{y,x}] = 101 -(r[x]<r[y]);
return r[x]<r[y];
}
int maxValue(int n, int W) {
vector<int> v;
for(int i=0;i<n;i++) v.push_back(i);
while(v.size()>1)
{
int cur = W/v.size();
int b[n],r[n];
for(int i=0;i<n;i++) b[i]=0;
for(int x:v) b[x] = cur;
playRound(b,r);
v.clear();
for(int i=0;i<n;i++)
{
if(r[i]>cur) v.push_back(i);
}
}
return v[0];
}
int greaterValue(int n, int W) {
int cur = 0;
return cur;
}
void allValues(int N, int W, int *p) {
n = N;
cnt = 0;
vector<int> a(n);
for(int i=0;i<n;i++) a[i] = i;
sort(a.begin(),a.end(),cmp);
for(int i=0;i<n;i++)
{
p[a[i]] = i+1;
}
}