using System;
using System.Collections.Generic;

namespace ConsoleApp1
{
    class Program
    {
        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.WriteLine();
            }
        }     
        static int ZbirK(int[,] a, int kolona, int n)
        {
            int suma = 0;
            for(int i = 0; i < n; i++)
            {
                suma += a[i, kolona];
            }
            return suma;
        }
        
        static int ZbirR(int[,] a, int red, int m)
        {
            int suma = 0;
            for(int j = 0; j < m; j++)
            {
                suma += a[red, j];
            }
            return suma;
        }
        static void Main(string[] args)
        {
            string[] st = Console.ReadLine().Split();

            int n = int.Parse(st[0]);
            int m = int.Parse(st[1]);
            int[,] ulazRed = new int[n, 2];
            int[,] ulazKolona = new int[m, 2];
            for(int i = 0; i < n ; i++)
            {
                st = Console.ReadLine().Split();
                ulazRed[i, 0] = int.Parse(st[0]);
                ulazRed[i, 1] = int.Parse(st[1]);
            }
            for (int i = 0; i < m; i++)
            {
                st = Console.ReadLine().Split();
                ulazKolona[i, 0] = int.Parse(st[0]);
                ulazKolona[i, 1] = int.Parse(st[1]);
            }
            int[,] matrica = new int[n, m];
            for(int i = 0; i < n; i++)
            {
                for(int j = 0; j < m; j++)
                {
                    matrica[i, j] = Math.Min(ulazKolona[j, 1], ulazRed[i, 1]);
                }
            }
            for (int i = 0; i < n; i++)
            {
                if (ZbirR(matrica, i, m) > ulazRed[i, 1])
                {
                    for (int j = 0; j < m; j++)
                    {
                        if (matrica[i, j] >= 1)
                            matrica[i, j]--;
                        if (ZbirR(matrica, i, m) == ulazRed[i, 1])
                            break;
                    }
                }
                if (ZbirR(matrica, i, m) < ulazRed[i, 0])
                {
                    for (int j = 0; j < m; j++)
                    {
                        matrica[i, j]++;
                        if (ZbirR(matrica, i, m) == ulazRed[i, 0])
                            break;
                    }
                }
            }
            for (int j = 0; j < m; j++)
            {
                if (ZbirK(matrica, j, n) > ulazKolona[j, 1])
                {
                    for (int i = 0; i < n; i++)
                    {
                        if (matrica[i, j] >= 1)
                            matrica[i, j]--;
                        if (ZbirK(matrica, j, n) == ulazKolona[j, 1])
                            break;
                    }
                }
                if (ZbirK(matrica, j, n) < ulazKolona[j, 0])
                {
                    for (int i = 0; i < n; i++)
                    {
                        matrica[i, j]++;
                        if (ZbirK(matrica, j, n) == ulazKolona[j, 0])
                            break;
                    }
                }
            }
            Ispis(matrica, n, m);
        }
    }
}