#include<bits/stdc++.h>

using namespace std;

long long max_int = LLONG_MAX;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n,m;
    cin >> n >> m;
    vector<vector<int>> navijaci(n);
    vector<vector<long long>> najeftiniji_put(n);
    vector<vector<long long>> kopija(n);
    int guzva;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            cin >> guzva;
            navijaci[i].push_back(guzva);
            najeftiniji_put[i].push_back(0);
            kopija[i].push_back(0);

        }
    }

    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            if(i==0 && j==0)
            {
                najeftiniji_put[i][j] = navijaci[i][j];
                kopija[i][j] = navijaci[i][j];
            }
            else if(i==0)
            {
                najeftiniji_put[i][j] = navijaci[i][j]+najeftiniji_put[i][j-1];
                kopija[i][j] = navijaci[i][j]+najeftiniji_put[i][j-1];
            }
            else if(j==0)
            {
                najeftiniji_put[i][j] = navijaci[i][j] + najeftiniji_put[i-1][j];
                kopija[i][j] = navijaci[i][j] + najeftiniji_put[i-1][j];
            }
            else
            {
                najeftiniji_put[i][j] = navijaci[i][j] + min(najeftiniji_put[i][j-1],najeftiniji_put[i-1][j]);
                kopija[i][j] = navijaci[i][j] + min(najeftiniji_put[i][j-1],najeftiniji_put[i-1][j]);
            }
        }
    }
    int x;
    cin >> x;
    int a,b;
    for(int k=0; k<x; k++)
    {
        cin >> a >> b;
        a--;
        b--;
        bool moze1 = false;
        bool moze2 = false;
        for(int i=a; i<n; i++)
        {
            for(int j=b; j<m; j++)
            {
                if(i == a && j == b)
                {
                    kopija[i][j] = max_int;
                }
                else if(i==0)
                {
                    if(kopija[i][j-1] == max_int)
                    {
                        kopija[i][j] = max_int;
                    }
                    else
                    {
                        kopija[i][j] = navijaci[i][j]+najeftiniji_put[i][j-1];
                    }
                }
                else if(i == a)
                {
                    kopija[i][j] = navijaci[i][j]+najeftiniji_put[i-1][j];
                    if(j == b+1)
                    {
                        if(kopija[i][j]==najeftiniji_put[i][j])
                        {
                            moze1 = true;
                        }
                    }

                }
                else if(j==0)
                {
                    if(kopija[i-1][j] == max_int)
                    {
                        kopija[i][j] = max_int;
                    }
                    else
                    {
                        kopija[i][j] = navijaci[i][j] + najeftiniji_put[i-1][j];
                    }

                }
                else if(j == b)
                {
                    kopija[i][j] = navijaci[i][j]+najeftiniji_put[i][j-1];
                    if(i == a+1)
                    {
                        if(kopija[i][j] == najeftiniji_put[i][j])
                           {
                               moze2 = true;
                           }
                    }
                }
                else
                {
                    kopija[i][j] = navijaci[i][j] + min(kopija[i][j-1],kopija[i-1][j]);
                }
                if(moze1 && moze2)
                {
                    break;
                }

            }
            if(moze1 && moze2)
            {
                break;
            }

        }
        cout << kopija[n-1][m-1] << endl;
    }

}