#include #include #include #include //#define scanf scanf_s #define fir first #define sec second #define mp make_pair #define mt make_tuple #define pub push_back using namespace std; typedef long long int llint; const llint one = 1; const llint big = (one<<30); const int mod=1000000007; inline int gcd(int a,int b) { return b ? gcd(b, a % b) : a; } int main(void){ int N,M,me,q,gen=0,bmax,bmin,can; vector po; scanf("%d %d",&N,&M); bmax=N-1; bmin=-1; scanf("%d",&me); for(int i=1;i1){ gen=(bmax+bmin)/2; int dow=N-2,lead=0,tei=me+po[gen],ok=1,it=0; for(lead=0;lead=0;dow--){ if(dow==gen){continue;} if(dowtei){break;} } if(ok==0){break;} } if(ok==1){bmax=gen;}//gen位の人と組んで敗退 else{bmin=gen;} } if(bmin==-1){gen=-1;} else{gen=(bmax+bmin)/2;} if(gen==-1){printf("-1\n");} else{printf("%d\n",po[gen]);} return 0; }