#include <bits/stdc++.h>

using namespace std;

struct par {
    long long x, y;
};

void resi(const vector<vector<long long>> &navijaci, vector<vector<long long>> &najmanji_br_navijaca, long long n, long long m,
long long x, long long y) {
    najmanji_br_navijaca[1][1] = navijaci[1][1];
    
    for(long long i = 2; i <= m; i++) {
        if(najmanji_br_navijaca[1][i] == -1)
            continue;
        else {
            if(najmanji_br_navijaca[1][i-1] == -1)
                najmanji_br_navijaca[1][i] = -1;
            else 
                najmanji_br_navijaca[1][i] = najmanji_br_navijaca[1][i-1] + navijaci[1][i];
        }
            
    }
    
    for(long long i = 2; i <= n; i++) {
        if(najmanji_br_navijaca[i][1] == -1)
            continue;
        else {
            if(najmanji_br_navijaca[i-1][1] == -1)
                najmanji_br_navijaca[i][1] = -1;
            else 
                najmanji_br_navijaca[i][1] = najmanji_br_navijaca[i-1][1] + navijaci[i][1];
        }
    }
    
    for(long long i = 2; i <= n; i++)
        for(long long j = 2; j <= m; j++) {
            if(najmanji_br_navijaca[i][j] == -1) 
                continue;
            
            else {
                if(najmanji_br_navijaca[i][j-1] >= 0 && najmanji_br_navijaca[i-1][j] >= 0)
                    najmanji_br_navijaca[i][j] = min( najmanji_br_navijaca[i][j-1], 
                    najmanji_br_navijaca[i-1][j] ) + navijaci[i][j];
            
                else {
                    if(najmanji_br_navijaca[i][j-1] >= 0)
                        najmanji_br_navijaca[i][j] = najmanji_br_navijaca[i][j-1] + navijaci[i][j];
                    
                    else if(najmanji_br_navijaca[i-1][j] >= 0)
                        najmanji_br_navijaca[i][j] = najmanji_br_navijaca[i-1][j] + navijaci[i][j];
                    
                    else
                        najmanji_br_navijaca[i][j] = -1;
            }
        }
    }
}

bool sadrzi(const vector<par> &najbolji_put, long long z, long long x, long long y) {
    for(int i = 0; i < z; i++) {
        if(najbolji_put[i].x == x && najbolji_put[i].y == y)
            return true; }
                
    return false;
}

int main()
{
    long long n, m;
    cin >> n >> m;
    vector<vector<long long>> navijaci(n+2);
    vector<vector<long long>> najmanji_br_navijaca(n+2);
    vector<par> najbolji_put (n+m-3);
    
    for(long long i = 0; i <= n+1; i++)
        for(long long j = 0; j <= m+1; j++) {
            if(i == 0 || j == 0 || i == n+1 || j == m+1) {
                navijaci[i].push_back(-1);
                najmanji_br_navijaca[i].push_back(-1); }
            else {
                long long a;
                cin >> a;
                navijaci[i].push_back(a);
                najmanji_br_navijaca[i].push_back(a);
            }
        }
            
    
    resi(navijaci, najmanji_br_navijaca, n, m, 0, 0);
    long long res = najmanji_br_navijaca[n][m];
    long long z = n+m-3;
    long long i = n, j = m;
    
    for(long long k = 0; k < z; k++) {
        if(i-1 > 0 && j-1 > 0) {
            if(najmanji_br_navijaca[i][j-1] < najmanji_br_navijaca[i-1][j]) {
                j--;
                najbolji_put[k].x = i;
                najbolji_put[k].y = j;
            }
            else {
                i--;
                najbolji_put[k].x = i;
                najbolji_put[k].y = j;
            }
        }
        else {
            if(i-1 == 0) {
                j--;
                najbolji_put[k].x = i;
                najbolji_put[k].y = j;
            }
            else {
                i--;
                najbolji_put[k].x = i;
                najbolji_put[k].y = j;
            }
        }
    
    }
    
        
    long long q;
    cin >> q;
    long long x, y;
    
    for(long long i = 0; i < q; i++) {
        cin >> x >> y;
        najmanji_br_navijaca[x][y] = -1;
        if(!sadrzi(najbolji_put, z, x, y))
            cout << res << endl;
            
        else {
            resi(navijaci, najmanji_br_navijaca, n, m, x, y);
            long long res2 = najmanji_br_navijaca[n][m];
            cout << res2 << endl;
            
            
            for(long long j = 1; j <= n; j++)
                for(long long p = 0; p <= m; p++)
                    najmanji_br_navijaca[j][p] = 1;
    
        }
    }
    
    
    return 0;
}