#include <bits/stdc++.h>
using namespace std;

int n,m,ny,nx;

unsigned long long int zn,oru;

bool moze(int y,int x)
{
    if(y<n and x<m and !(y==ny and x==nx))
        return 1;
    return 0;
}

void put(int y,int x,int **doha)
{
    if(y==n-1 and x==m-1)
    {
        oru=min(oru,zn);
    }

    if(moze(y,x+1))
    {
        zn=zn+doha[y][x+1];
        put(y,x+1,doha);
        zn=zn-doha[y][x+1];
    }
    if(moze(y+1,x))
    {
        zn=zn+doha[y+1][x];
        put(y+1,x,doha);
        zn=zn-doha[y+1][x];
    }
}

int main()
{
    int q;
    cin>>n>>m;
    int **doha;
    doha=new int*[n];
    for(int i=0;i<n;i++)
    {
        doha[i]=new int[m];
        for(int j=0;j<m;j++)
        {
            cin>>doha[i][j];
        }
    }

    cin>>q;
    for(int i=0;i<q;i++)
    {
        cin>>ny>>nx;
        ny=ny-1;
        nx=nx-1;
        oru=18446744073709551615;
        zn=doha[0][0];
        put(0,0,doha);
        cout<<oru<<endl;
    }

    return 0;
}