#include <bits/stdc++.h>
using namespace std;
int m,n;

bool comp(long long a,long long b)
{
    if(a<0)
        return 0;
    if(b<0)
        return 1;
    return (a<b);
}
void resi(vector<vector<long long>> dva,vector<vector<long long>> niz,int a,int b)
{

    dva[a][b]=-1;
    if(a==0)
    {
        for(int i=b+1;i<n;i++)
        {
            dva[0][i]=-1;
        }
    }
    else
    {
        for(int i=b+1;i<n;i++)
        {
            dva[a][i]=niz[a][i]+dva[a-1][i];
        }
    }
    if(b==0)
    {
        for(int i=a+1;i<m;i++)
        {
            dva[i][0]=-1;
        }
    }
    else
    {
        for(int i=b+1;i<m;i++)
        {
            dva[i][b]=niz[i][b]+dva[i][b-1];
        }
    }
        for(int i=a;i<m;i++)
        for(int j=b;j<n;j++)
            {
                if(dva[i][j]>0)
                dva[i][j]=min(dva[i][j-1],dva[i-1][j],comp)+niz[i][j];
            }

        cout<<dva[m-1][n-1]<<"\n";
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    cin>>m>>n;
    vector<vector<long long>> niz( m , vector<long long> (n));
    vector<vector<long long>> dva( m , vector<long long> (n));
    int p;

    for(int i=0;i<m;i++)
        for(int j=0;j<n;j++)
        {
            cin>>p;
            niz[i][j]=p;
        }
    dva[0][0]=niz[0][0];
    for (int i=1;i<n;i++)
        {
            dva[0][i]=dva[0][i-1]+niz[0][i];
        }
    for (int i=1;i<m;i++)
        {
            dva[i][0]=dva[i-1][0]+niz[i][0];
        }
    for(int i=1;i<m;i++)
        for(int j=1;j<n;j++)
            {
                dva[i][j]=min(dva[i][j-1],dva[i-1][j],comp)+niz[i][j];
            }
       int q;
       int r,e;
       cin>>q;
        while(q--)
        {
            cin>>r>>e;
            resi(dva,niz,r-1,e-1);
        }
    return 0;
}