#include <bits/stdc++.h>
#define MAXN 500
#define fi first
#define se second
#include "locmin.h"
using namespace std;
long long val[MAXN+5];

pair<int, int> find_locmin_point(int N, int M) {
    int i, j;
    if (M<30) {
        for (i=1; i<=M; i++) {
            val[i]=value(1, i);
        }
        if (val[1]<val[2]) return {1, 1};
        if (val[M]<val[M-1]) return {1, M};
        for (i=2; i<M; i++) {
            if (val[i]<val[i-1] && val[i]<val[i+1]) return {1, i};
        }
        return {0, 0};
    }
    val[1]=value(1, 1);
    val[2]=value(1, 2);
    if (val[1]<val[2]) return {1, 1};
    val[M]=value(1, M);
    val[M-1]=value(1, M-1);
    if (val[M]<val[M-1]) return {1, M};
    int st=1, dr=M;
    while (st<dr-1) {
        int mij=(st+dr-1)/2;
        if (val[mij]==0) val[mij]=value(1, mij);
        if (val[mij+1]==0) val[mij+1]=value(1, mij+1);
        if (val[mij]<val[mij+1]) dr=mij+1;
        else st=mij;
    }
    for (i=st; i<=dr; i++) {
        if (val[i]==0) val[i]=value(1, i);
        if (val[i-1]==0 && i>1) val[i-1]=value(1, i-1);
        if (val[i+1]==0 && i<M) val[i+1]=value(1, i+1);
        if (val[i]<val[i-1] && val[i]<val[i+1]) return {1, i};
    }
    return {0, 0};
}
