#include <bits/stdc++.h>
#include "koala.h"
#define REP(i,a,b) for(int i = a; i<b; i++)
#define RREP(i,a,b) for(int i = a; i>b; i--)
using namespace std;
int b[100],r[100];
int minValue(int N, int W){
fill(b, b+N,0);
b[0] = 1;
playRound(b,r);
if(r[0]<=1) return 0;
REP(i,1,N){
if(r[i] == 0) return i;
}
}
int maxValue(int N, int W){
vector<int> v;
REP(i,0,N){
b[i] = 0;
v.push_back(i);
}
while(v.size()!=1){
int k = W/v.size();
for(int i: v) b[i] = k;
playRound(b,r);
v.clear();
REP(i,0,N){
if(r[i]>k) v.push_back(i);
}
fill(b, b+N, 0);
}
return v[0];
}
int greaterValue(int N, int W){
vector<int> v;
int le = 0, ri = 9;
while(le < ri){
int mid = (le+ri)/2;
fill(b, b+N, 0);
b[0] = b[1] = mid;
playRound(b,r);
if(r[0]!=r[1]) return (r[0]<r[1]);
if(r[0] == mid+1) le = mid+1;
else ri = mid-1;
}
b[0] = b[1] = le;
playRound(b,r);
return(r[0]<r[1]);
}
void allValues(int N, int W, int *P){
iota(P, P+N, 0);
sort(P,P+N,[](int i, int j){
fill(b,b+100,1);
b[i] = b[j] = 100;
playRound(b,r);
return r[i]>r[j];
});
}