#include<algorithm>
#include<iostream>
#include<string>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
int n,w,h;
int a[15],b[15],c[15],f[10][10];
int fn(int d[][10],int p){
  int i,j,k,l,m;
  int ct=0;
  if(p==n){
    for(i=0;i<h;i++){
      for(j=0;j<w;j++){
	if(d[j][i]==0)
	  break;
      }
      if(j!=w)
	break;
    }
    if(i==h){
      for(i=0;i<h;i++){
	for(j=0;j<w;j++)
	  f[j][i]=d[j][i];
      }
      ct=1;
    }
  }else{
    for(i=1;i<a[p]+1;i++){
      if(a[p]%i==0){
	for(j=0;j<i;j++){
	  if(b[p]-j>-1&&b[p]+i-j-1<w){
	    for(k=0;k<a[p]/i;k++){
	      if(c[p]-k>-1&&c[p]+a[p]/i-k-1<h){
		for(l=0;l<i;l++){
		  for(m=0;m<a[p]/i;m++){
		    if(d[b[p]-j+l][c[p]-k+m])
		      break;
		  }
		  if(m!=a[p]/i)
		    break;
		}
		if(l==i){
		  int e[10][10];
		  memcpy(e,d,sizeof(e));
		  for(l=0;l<i;l++)
		    for(m=0;m<a[p]/i;m++)
		      e[b[p]-j+l][c[p]-k+m]=p+1;
		  ct+=fn(e,p+1);
		  if(ct>1)
		    return ct;
		}
	      }
	    }
	  }
	}
      }
    }
  }
  return ct;
}
int main(){
  int i,j;
  while(cin>>w>>h>>n&&w+h+n){
    for(i=0;i<n;i++){
      int p,q;
      cin>>p>>q;
      p--;
      a[p]=q;
    }
    for(i=0;i<h;i++){
      for(j=0;j<w;j++){
	int p;
	cin>>p;
	if(p){
	  p--;
	  b[p]=j;
	  c[p]=i;
	}
      }
    }
    int d[10][10];
    memset(d,0,sizeof(d));
    if(fn(d,0)==1){
      for(i=0;i<h;i++){
	for(j=0;j<w;j++)
	  cout<<f[j][i];
	cout<<endl;
      }
    }else
      cout<<"NA"<<endl;
  }
  return 0;
}