#include <bits/stdc++.h>
#include <climits>

using namespace std;

int main()
{
    unsigned long int n, m;
	cin >> n >> m;
	unsigned long int doha[n][m];
	
	for(unsigned long int i = 0; i < n; i++)
	{
	    for(unsigned long int j = 0; j < m; j++)
	    {
	        cin >> doha[i][j];
	    }
	}
	
	unsigned long int prvi[n][m] = {0};
	unsigned long int stadion[n][m] = {0};
	
	prvi[0][0] = doha[0][0];
	stadion[n - 1][m - 1] = doha[n - 1][m - 1];
	
	for(unsigned long int i = 1; i < m; i++)
	{
	    prvi[0][i] = prvi[0][i - 1] + doha[0][i];
	    prvi[1][i] = prvi[0][i] + doha[1][i];
	    
	    stadion[n - 1][m - i - 1] = stadion[n - 1][m - i] + doha[n - 1][m - i - 1];
	    stadion[n - 2][m - i - 1] = stadion[n - 1][m - i - 1] + doha[n - 2][m - i - 1];
	}
	
	for(unsigned long int i = 1; i < n; i++)
	{
	    prvi[i][0] = prvi[i - 1][0] + doha[i][0];
	    stadion[n - i - 1][m - 1] = stadion[n - i][m- 1] + doha[n - i - 1][m - 1];
	    for(unsigned long int j = 1; j < m; j++)
	    {
	        if((prvi[i][j - 1] + doha[i][j]) < prvi[i][j])
	        {
	            prvi[i][j] = prvi[i][j - 1] + doha[i][j];
	        }
	        
	        if(i < n - 1)
	        {
	            prvi[i + 1][j] = prvi[i][j] + doha[i + 1][j];
	        }
	        
	        if((stadion[n - i - 1][m - j] + doha[n - i - 1][m - j - 1]) < stadion[n - i - 1][m - j - 1])
	        {
	            stadion[n - i - 1][m - j - 1] = stadion[n - i - 1][m - j] + doha[n - i - 1][m - j - 1];
	        }
	        
	        if(i > 0)
	        {
	            stadion[n - i - 2][m - j - 1] = stadion[n - i - 1][m - j - 1] + doha[n - i - 2][m - j - 1];
	        }
	    }
	}
	
	unsigned long int q;
	cin >> q;
	unsigned long x, y;
	vector<unsigned long int> res;
	
	for(int i = 0; i < q; i++)
	{
	    cin >> x >> y;
	    x--;
	    y--;
	    unsigned long long int min = ULLONG_MAX;
	    unsigned long int tmpx = x, tmpy = y;
	    
	    while(tmpx > 0 && tmpy < m)
	    {
	        tmpx--;
	        tmpy++;
	        if(prvi[tmpx][tmpy] + stadion[tmpx][tmpy] - doha[tmpx][tmpy] < min)
	        {
	            min = prvi[tmpx][tmpy] + stadion[tmpx][tmpy] - doha[tmpx][tmpy];
	        }
	    }
	    tmpx = x;
	    tmpy = y;
	    while(tmpx < n && tmpy > 0)
	    {
	        tmpx++;
	        tmpy--;
	        if(prvi[tmpx][tmpy] + stadion[tmpx][tmpy] - doha[tmpx][tmpy] < min)
	        {
	            min = prvi[tmpx][tmpy] + stadion[tmpx][tmpy] - doha[tmpx][tmpy];
	        }
	    }
	    
	    res.push_back(min);
	}
	
	for(auto e : res)
	{
	    cout << e << "\n";
	}
	
	return 0;
}