using System;

namespace TakmicenjeZad3
{
	class Program
	{
		public static int min = -1;
		static void Main(string[] args)
		{
			int[,] mat;
			int N;
			int M;
			
			int a;
			int b;
			//N = int.Parse(Console.ReadLine());
			//M = int.Parse(Console.ReadLine());
			N = int.Parse(Console.ReadLine());
			M = int.Parse(Console.ReadLine());
			mat = new int[M, N];
			int num = 0;
			for (int i = 0; i < N; i++)
			{
				for (int j = 0; j < M; j++)
				{
					mat[j, i] = int.Parse(Console.ReadLine());
					
				}
			}
			int brBlok = int.Parse(Console.ReadLine());
			int[,] blokade = new int[brBlok,2];
			for (int i = 0; i < brBlok; i++)
			{
				//a
				blokade[i,0]= int.Parse(Console.ReadLine())-1;
				//b
				blokade[i, 1] = int.Parse(Console.ReadLine())-1;
			}
			min = -1;
			for (int i = 0; i < brBlok; i++)
			{
				func(0, 0, blokade[i, 0], blokade[i, 1], mat, 0, N, M);
				Console.WriteLine(min);
				min = -1;
			}
			

		}
		static void func(int x, int y, int a, int b, int[,] mat, int sum,int N,int M)
		{
			
			
			if (x >= M || y >= N) return;	
			if (x == b && y == a) return;
			sum += mat[x, y];
			
			if (min != -1 && sum > min) return;
			else if (x == M - 1 && y == N - 1)
			{ 
				
				if (min == -1) { min = sum; }
				else if (sum < min) { min = sum; }
				return;
			}
			else
			{


				if (x == M - 1)
				{
					
					func(x, y+1, a, b, mat, sum, N, M);
				}
				else if (y == N - 1)
				{
					
					func(x+1, y, a, b, mat, sum, N, M);
				}
				else
				{
					
					func(x + 1, y, a, b, mat, sum, N, M);
					func(x, y + 1, a, b, mat, sum, N, M);
				}
			}
			
			
		}
		
	}
}