#include "locmin.h"
#include "bits/stdc++.h"
using namespace std;

#define ll long long
const ll INF=1e18;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

int n,m;

int f(int l,int r){
      if(l==r) return l;
      int mid=(l+r)>>1;
      bool f1=1;
      bool f2=1;
      if(mid+1!=n) f1=(value(1,mid+1)>value(1,mid));
      if(mid-1!=1) f2=(value(1,mid-1)>value(1,mid));
      if(l==1) return f(mid+1,r);
      else if(r==n) return f(l,mid);
      else{
            if(value(1,l)>value(1,r)) return f(mid+1,r);
            else return f(l,mid);
      }
}

pair<int,int>find_locmin_point(int N,int M)
{
      n=N;
      m=M;
      if(M<=30){
            vector<pair<int,pair<int,int>>>srt;
            for(int i=1;i<=M;i++) srt.push_back({value(1,i),{1,i}});
            sort(srt.begin(),srt.end());
            return {srt[0].second.first,srt[0].second.second};
      }
      return {1,f(1,M)};
}
