#include<bits/stdc++.h>
using namespace std;

int main(){
  while(1){
  char c,ans[1001];
  int n,m,q,cnt=0,f[37][1001],s[37]={},b[1001];
  cin>>n>>m>>q;
  if(n+m+q==0) break;
  
     for(int i=0;i<n;i++)
       for(int j=0;j<m;j++)f[i][j]=1;
   
  while(cnt<q){
    cnt++;
    for(int i=0;i<n;i++)cin>>c,s[i]=(s[i]+(c-'0'))%2;
    for(int i=0;i<m;i++)cin>>c,b[i]=c-'0';
    
    for(int i=0;i<n;i++)
      for(int j=0;j<m;j++){
	if(f[i][j]==2) continue;
	else if(s[i]==b[j])f[i][j]=1;
	else f[i][j]=2;
      }
    }

  for(int j=0;j<m;j++){
    int flag=0;
    for(int i=0;i<n;i++){
      if(f[i][j]==1 && flag==0){
	flag=1;
	if(i>=0 && i<=9) ans[j]=i+'0';
	else ans[j]=i-10+'A';
      }else if(flag==1 && f[i][j]==1)ans[j]='?';
    }
   }
  
  for(int i=0;i<m;i++)cout<<ans[i];
  cout<<endl;
  }
  return 0;
}