#include<utility>

    long long value(int r, int c);

    long long p[505][505];

    long long get(int r, int c) {
        if (p[r][c]) {
            return p[r][c];
        } else {
            p[r][c] = value(r, c);
            return p[r][c];
        }
    }

    std::pair<int, int> find_locmin_point(int N, int M) {
        for (int i = 0; i <= N; i++) {
            for (int j = 0; j <= M; j++) {
                p[i][j] = 0;
            }
        }
        int i = 1;
        int j = 1;
        bool f = 1;
        while (f) {
            f = 0;
            if (i + 1 <= N) {
                if (get(i + 1, j) < get(i, j)) {
                    i++;
                    f = 1;
                    continue;
                }
            }

            if (j + 1 <= M) {
                if (get(i, j + 1) < get(i, j)) {
                    j++;
                    f = 1;
                    continue;
                }
            }

            if (i - 1 > 0) {
                if (get(i - 1, j) < get(i, j)) {
                    i--;
                    f = 1;
                    continue;
                }
            }

            if (j - 1 > 0) {
                if (get(i, j - 1) < get(i, j)) {
                    j--;
                    f = 1;
                    continue;
                }
            }
        }
        return {i, j};
    }