using System;
class HelloWorld
{
    static long minimalna_suma(long [,] matrica, long n, long m, long x, long y)
    {
        long min = 0, min1 = 0, min2 = 0;
        bool moze_levo = false, moze_gore = false;
        if(n-1 >= 0 && matrica[n-1, m] >= 0 && !(x==0 && n == x+1 && m>=y))
        {
            moze_levo = true;
        }
        if(m-1 >=0 && matrica[n, m-1] >= 0 && !(y==0 && m == y+1 && n>=x))
        {
            moze_gore = true;
        }
        if(moze_gore && moze_levo)
        {
            min1 = minimalna_suma(matrica, n-1, m, x, y);
            min2 = minimalna_suma(matrica, n, m-1, x, y);
            if(min1 > min2)
            {
                min = min2;
            }
            else
            {
                min = min1;
            }
        }
        else if(moze_gore)
        {
            min = minimalna_suma(matrica, n, m-1, x, y);
        }
        else if(moze_levo)
        {
            min = minimalna_suma(matrica, n-1, m, x, y);
        }
        min += matrica[n, m];
        return min;
    }
    static void Main()
    {
        string [] ulaz = Console.ReadLine().Split(' ');
        long n = long.Parse(ulaz[0]);
        long m = long.Parse(ulaz[1]);
        long i = 0, j = 0;
        long [,] matrica = new long [n, m]; 
        
        for(i=0; i<n; i++)
        {
            ulaz = Console.ReadLine().Split(' ');
            for(j=0; j<m; j++)
            {
                matrica[i, j] = long.Parse(ulaz[j]);
            }
        }
        long Q = long.Parse(Console.ReadLine());
        for(i=0; i<Q; i++)
        {
            ulaz = Console.ReadLine().Split(' ');
            long x = long.Parse(ulaz[0]); x--;
            long y = long.Parse(ulaz[1]); y--;

            long rez = matrica[x, y];
            matrica[x, y] = -1;
            Console.WriteLine(minimalna_suma(matrica, n-1, m-1, x, y));
            matrica[x, y] = rez;
        }
    }
}