#include "locmin.h"
#include <utility>
using namespace std;

int v[501][501];
int n,m;
int ml[]={1,0,-1,0};
int mc[]={0,1,0,-1};

bool in(int l,int c){
    return (l>=1 && c>=1 && l<=n && c<=m);
}

pair<int,int> dfs(int l,int c){
    long long l1,c1,ci,j,min1=1e18;
    for(j=0;j<4;j++){
        l1=ml[j]+l;c1=c+mc[j];
        if(in(l1,c1)){
            if(v[l1][c1]==-1) v[l1][c1]=value(l1,c1);
            if(value(l1,c1)<=min1){
                min1=value(l1,c1);ci=j;
            }
        }
    }
    if(v[l][c]<min1) return {l,c};
    return dfs(l+ml[ci],c+mc[ci]);
}

pair <int, int> find_locmin_point(int N, int M) {
    long long i,j,l1=1e18,l2=1e18,max1=1e18,aux;
    n=N;m=M;
    for(i=1;i<=m;i++){
        for(j=1;j<=M;j++){
            v[i][j]=-1;
        }
    }
    v[1][1]=value(1,1);
    return dfs(1,1);
}
