#include <bits/stdc++.h>

using namespace std;
const int MAX=10e6+5;
int N,M,Q,x,y,poz_blok;
long long sum=0,min_sum,min_sum2=LLONG_MAX;
stack <int> st;
int Doha[MAX];
bool was[MAX]={false};
vector <int> najbolji_put;
vector <int> najbolji_put2;
vector <int> put;
vector<vector<int>> graf;
vector <int> putevi_rad;
int pozicija(int i,int j){
    return i*M+j;
}
void popuniGraf(int i,int j){
    if(i==N-1 && j==M-1){
        return;
    }
    if(i==N-1){
        graf[pozicija(i,j)].push_back(pozicija(i,j+1));
        return;
    }
    if(j==M-1){
        graf[pozicija(i,j)].push_back(pozicija(i+1,j));
        return;
    }
    graf[pozicija(i,j)].push_back(pozicija(i,j+1));
    graf[pozicija(i,j)].push_back(pozicija(i+1,j));
}
void odredjivanjePuta(){
    sum=0;
    min_sum2=LLONG_MAX;
    najbolji_put2.clear();

    while(!st.empty()){
        int tren=st.top();
        if(!was[tren]){
            was[tren]=true;
            put.push_back(tren);
            sum+=Doha[tren];
            if(tren==M*N-1 && min_sum2>sum){
                min_sum2=sum;
                najbolji_put2=put;
            }
            for(int i=0;i<graf[tren].size();i++){
                st.push(graf[tren][i]);
            }
        }
        else{
            st.pop();
            was[tren]=false;
            put.pop_back();
            sum-=Doha[tren];
        }
    }
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int a;
    cin>>N>>M;
    graf.clear();
    graf.resize(N*M);
    for(int i=0;i<N;i++){
        for(int j=0;j<M;j++){
            cin>>a;
            Doha[pozicija(i,j)]=a;
            popuniGraf(i,j);
        }
    }
    st.push(0);
    odredjivanjePuta();
    min_sum=min_sum2;
    najbolji_put=najbolji_put2;
    cin>>Q;
    for(int i=0;i<Q;i++){
        cin>>x>>y;
        --x;
        --y;
        poz_blok=pozicija(x,y);
        if(find(najbolji_put.begin(),najbolji_put.end(),poz_blok)!=najbolji_put.end()){
            putevi_rad.clear();
            putevi_rad=graf[poz_blok];
            graf[poz_blok].clear();
            st.push(0);
            odredjivanjePuta();
            cout<<min_sum2<<"\n";
            graf[poz_blok]=putevi_rad;
        }
        else{
            cout<<min_sum<<"\n";
        }
    }
    return 0;
}