using System;

namespace ConsoleApp2
{
    internal class Program
    {
        static int metoda(int[,] A, int i, int j, int N, int M)
        {
            if (i == N || j == M)
            {
                return int.MaxValue;
            }
            else if (i == N - 1 && j == M - 1)
            {
                Console.Write(A[i, j] + " ");
                return A[i, j];
            }
            else
            {
                
                return A[i, j] + Math.Min(metoda(A, i + 1, j, N, M), metoda(A, i, j + 1, N, M));
                
            }

        }
        static void ispis(int[,] A, int N, int M)
        {
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    Console.Write(A[i, j]+" ");
                }
                Console.Write("\n");
            }
        }
        static void Main(string[] args)
        {
            int N, M;
            string[] s=Console.ReadLine().Split(' ');
            N=int.Parse(s[0]);
            M=int.Parse(s[1]);
            int[,] A = new int[N, M];
            for (int i = 0; i < N; i++)
            {
                s = Console.ReadLine().Split(' ');
                for (int j = 0; j < s.Length; j++)
                {
                    A[i, j] = int.Parse(s[j]);
                }
            }
            int Q = int.Parse(Console.ReadLine());
            
            for (int i = 0; i < Q; i++)
            {
                int[,] B = A;
                s=Console.ReadLine().Split(' ');
                int t = B[int.Parse(s[0]) - 1, int.Parse(s[1]) - 1];
                B[int.Parse(s[0]) - 1, int.Parse(s[1]) - 1] = B[N-1,M-1];
                ispis(B, N, M);
                Console.WriteLine(metoda(B, 0, 0, N, M));
                Console.Write("\n");
                B[int.Parse(s[0]) - 1, int.Parse(s[1]) - 1] = t;
            }
        }
    }