#include "locmin.h"
#include <bits/stdc++.h>
#define NMAX 500

bitset<NMAX+1> imposibil[NMAX+1];
long long val[NMAX+1][NMAX+1];
int dx[4]={-1, 0, 1, 0};
int dy[4]={0, -1, 0, 1};

std::pair <int, int> find_locmin_point(int N, int M) {

    for(int i=1; i<=N; i++)
    {
        for(int j=1; j<=M; j++)
        {
            if(!imposibil[i][j])
            {
                if(val[i][j]==0) val[i][j]=value(i, j);
                for(int d=0; d<4; d++)
                {
                    int x=i+dx[d], y=i+dy[d];
                    if((x>=1 && x<=n) && (y>=1 && y<=m))
                    {
                        if(val[x][y]==0) val[x][y]=value(x, y);
                        if(val[x][y]<val[i][j]) {imposibil[i][j]=1; break;}
                        else imposibil[x][y]=1;
                    }
                }
                if(!imposibil[i][j]) return {i, j};
            }
        }
    }
}