#include <bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;
int main(int argc, char *argv[])
{
    ll n,m;
    cin>>n>>m;
    ll a[n+1][m+1];
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++)cin>>a[i][j];
    }
    // sta ce biti ako je x i
    ll rez1[m+1]={0};
    ll pref1[m+1];
    ll pref2[m+1];
    ll rez2[m+1]={0};
    // radim prvo rez1
    pref1[0]=0;
    pref2[0]=0;
    for(int i=1;i<=m;i++){
        pref1[i]=pref1[i-1]+a[1][i];
        pref2[i]=pref2[i-1]+a[2][i];
    }
    // mora se spustiti do y
    ll ans=a[1][1]+pref2[m];
    for(int i=2;i<=m;i++){
        // prepreka je i
        //cout<<"AKO JE PREPREKA I:"<<i<<" "<<pref1[i-1]+pref2[m]-pref2[i-2]<<endl;
        ll r=pref1[i-1]+pref2[m]-pref2[i-2];
        if(ans>r)ans=r;
        rez1[i]=ans;
    }
    ans=pref1[m]+a[2][m];
    for(int i=m-2;i>=1;i--){
        // prepreka je i
        //cout<<"AKO JE PREPREKA I:"<<i<<" "<<pref1[i+1]<<endl;
        ll r=pref1[i+1]+pref2[m]-pref2[i];
        if(ans>r)ans=r;
        rez2[i]=ans;
    }
    //cout<<rez2[y];
    //out<<endl;.
    ll dp[n+1][m+1];
    int q;
    cin>>q;
    while(q--){
        int x,y;
        cin>>x>>y;
        if(n==2){
            if(x==1){
                cout<<rez1[y];
            }
            else cout<<rez2[y];
        }
        else {
        for(int i=0;i<=n;i++)for(int j=0;j<=m;j++)dp[i][j]=1e18;
        ll r=a[x][y];
        a[x][y]=1e18;
        dp[1][1]=a[1][1];
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
            // uzima minimalnu vrednost od dp[i][j] i dp[i-1][j]?
            // dp[i][j]=min(dp[i][j],min(dp[i-1][j],dp[i][j-1])+a[i][j])
            dp[i][j]=min(dp[i][j],min(dp[i-1][j],dp[i][j-1])+a[i][j]);
            }
        }
        cout<<dp[n][m];
        a[x][y]=r;
        }
        cout<<endl;
    }
}