std::pair<int, int> find_locmin_point(int N, int M){
    N=1;
    long long st=1,dr=M,mij,a,b,c,i,li;
    long long mm[502][501];
    for(li=1;li<=N;li++){
        for(i=1;i<=500;i++){
            mm[li][i]=-1;
        }
        while(st<=dr){
            mij=(st+dr)/2;
            if(mij>1){
                if(mm[li][mij-1]==-1){
                    mm[li][mij-1]=value(li,mij-1);
                }
                a=mm[li][mij-1];
            }
            else{
                a=1000000000000;
            }
            if(mm[li][mij]==-1){
                    mm[li][mij]=value(li,mij);
                }
                b=mm[li][mij];
            if(mij<M){
                if(mm[li][mij+1]==-1){
                    mm[li][mij+1]=value(li,mij+1);
                }
                c=mm[li][mij+1];
            }
            else{
                c=1000000000000;
            }
            if(a>b && c>b){
                if(N==1){
                return {li,mij};
                }
                else{
                    if(li>1 && value(li-1,mij)<b){
                        break;
                    }
                    if(li<N && value(li+1,mij)<b){
                        break;
                    }
                    return {li,mij};
                }
            }
            else if(a>b){
                st=mij+1;
            }
            else if(c>b){
                dr=mij-1;
            }
            else{
                dr=mij-1;
            }
        }
    }
    return {1,st};
}