#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    int n, m; cin >> n >> m;

    int matrica[m][n];
    long long unapred[m][n];
    long long unazad[m][n];

    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
        {
            cin >> matrica[j][i];
        }
    }

    int q; cin >> q;
    int x[m], y[n];

    for(int i = 0; i < q; i++)
    {
        cin >> y[i] >> x[i];
        x[i]--;
        y[i]--;
    }

    unapred[0][0] = matrica[0][0];

    for(int j = 1; j < m; j++)
    {
        unapred[j][0] = matrica[j][0] + unapred[j - 1][0];
    }

    for(int i = 1; i < n; i++)
    {
        unapred[0][i] = matrica[0][i] + unapred[0][i - 1];
    }

    for(int i = 1; i < n; i++)
    {
        for(int j = 1; j < m; j++)
        {
            unapred[j][i] = min(unapred[j - 1][i], unapred[j][i - 1]) + matrica[j][i];
        }
    }

    unazad[m - 1][n - 1] = matrica[m - 1][n - 1];

    for(int j = m - 2; j >= 0; j--)
    {
        unazad[j][n - 1] = matrica[j][n - 1] + unazad[j + 1][n - 1];
    }

    for(int i = n - 2; i >= 0; i--)
    {
        unazad[m - 1][i] = matrica[m - 1][i] + unazad[m - 1][i + 1];
    }

    for(int i = n - 2; i >= 0; i--)
    {
        for(int j = m - 2; j >= 0; j--)
        {
            unazad[j][i] = min(unazad[j + 1][i], unazad[j][i + 1]) + matrica[j][i];
        }
    }

    for(int k = 0; k < q; k++)
    {
        long long rez = 100000000000000000;

        if(y[k] - 1 >= 0)
        {
            for(int j = x[k] + 1; j < m; j++)
            {
                rez = min(rez, unapred[j][y[k] - 1] + unazad[j][y[k]]);
            }
        }

        if(x[k] - 1 >= 0)
        {
            for(int i = y[k] + 1; i < n; i++)
            {
                rez = min(rez, unapred[x[k] - 1][i] + unazad[x[k]][i]);
            }
        }

        cout << rez << endl;
    }

    return 0;
}