#include <bits/stdc++.h>
#include "locmin.h"
long long mat[502];
long long Valoare(int c) {
    if(0 == mat[c]) return mat[c] = value(1, c);
    return mat[c];
}
std::pair<int, int> find_locmin_point(int n, int m) {
    const int PAS = 23;

    long long mi = LLONG_MAX;
    int col = 1;

    for(int j = 1; j <= m; j += PAS) {
        long long val = Valoare(j);
        if(mi > val) {
            mi = val;
            col = j;
        }
    }

   /*long long ult = Valoare(m);
    if(mi > ult) {
        mi = ult;
        col = m;
    }*/

    while(true) {
        long long val = Valoare(col);
        const long long st = (1 < col ? Valoare(col - 1) : LLONG_MAX);
        const long long dr = (m > col ? Valoare(col + 1) : LLONG_MAX);

        if(st > val && dr > val) return {1, col};
        if(st < val) col--;
        else         col++;
    }
}
