#include <stdio.h>#include <memory.h>int tree[400][4];int leaf[350];int processTree( int x ) {int v[4];int i, j, z;if( leaf[x] > -1 ) return leaf[x];for(i = 0; i < 4; i++) v[i] = processTree( 4*x+1+i );for(i = 0; i < 4; i++) {z = 0;for(j = 0; j < 4; j++) if( v[i]>v[j] ) z++;tree[x][z] = i;}return v[tree[x][0]];}int image[16][16];void buildImage( int x, int x1, int y1, int x2, int y2 ) {int i, j;if( leaf[x] > -1 ) {for( i = x1; i <= x2; i++ ) for( j = y1; j <= y2; j++ ) image[i][j] = leaf[x];return;}buildImage(4*x+1+tree[x][0], x1, y1, x1+(x2-x1)/2, y1+(y2-y1)/2 );buildImage(4*x+1+tree[x][1], x1+(x2-x1)/2+1, y1, x2, y1+(y2-y1)/2 );buildImage(4*x+1+tree[x][2], x1, y1+(y2-y1)/2+1, x1+(x2-x1)/2, y2 );buildImage(4*x+1+tree[x][3], x1+(x2-x1)/2+1, y1+(y2-y1)/2+1, x2, y2 );}int main() {int i, j, k;int n;intm;int intensity;int N;scanf("%d", &N);while (N--) {memset (tree, 0, sizeof(tree));int num;int iCase;scanf("%d", &iCase );for (num=1; num<=iCase; num++) {scanf("%d%d", &n, &m);memset (leaf, 0xff, sizeof(leaf));for( i = 0; i < m; i++ ) {scanf("%d %d", &k, &intensity );leaf[k] = intensity;}processTree(0);scanf("%d", &m);memset (leaf, 0xff, sizeof(leaf));for( i = 0; i < m; i++ ) {scanf("%d %d", &k, &intensity );leaf[k] = intensity;}buildImage(0, 0, 0, n-1, n-1);if( num>1 ) printf("n");printf("Case %dnn", num );for( i = 0; i < n; i++ ) {for( j = 0; j < n; j++ ) printf("%4d", image[j][i] );printf("n");}}if (N) printf("n");}return 0;}


