#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <math.h>
using namespace std;
int main(){
	string a("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");
	int n,m,q;
	while(cin>>n>>m>>q){
		if(n==0&&m==0&&q==0) break;
		else if(q==0){
			if(n==1&&m==1) cout<<0<<endl;
			else{
				for(int i=0;i<m;i++){
					cout<<"?";
				}
				cout<<endl;
			}
		}
		else{
			string s[q],b[q];
			int ss[q][n],bb[q][m];
			cin>>s[0]>>b[0];
			for(int j=0;j<n;j++){
				if(s[0][j]=='0'){
					ss[0][j]=0;
				}
				else{
					ss[0][j]=1;
				}
			}
			for(int j=0;j<m;j++){
				if(b[0][j]=='0'){
					bb[0][j]=0;
				}
				else{
					bb[0][j]=1;
				}
			}
			for(int i=1;i<q;i++){
				cin>>s[i]>>b[i];
				for(int j=0;j<n;j++){
					if(s[i][j]=='0'){
						ss[i][j]=ss[i-1][j];
					}
					else{
						ss[i][j]=(ss[i-1][j]+1)%2;
					}
				}
				for(int j=0;j<m;j++){
					if(b[i][j]=='0'){
						bb[i][j]=0;
					}
					else{
						bb[i][j]=1;
					}
				}
			}
			int hyou[m][n];
			for(int i=0;i<n;i++){
				for(int j=0;j<m;j++){
					hyou[j][i]=0;
				}
			}
			for(int i=0;i<q;i++){
				for(int j=0;j<m;j++){
					if(bb[i][j]==1){
						for(int k=0;k<n;k++){
							if(ss[i][k]==0){
								hyou[j][k]=-1;
							}
							else if(hyou[j][k]==0){
								hyou[j][k]=1;
							}
						}
					}
					else{
						for(int k=0;k<n;k++){
							if(ss[i][k]==1){
								hyou[j][k]=-1;
							}
							else if(hyou[j][k]==0){
								hyou[j][k]=1;
							}
						}
					}
				}
			}
			for(int i=0;i<m;i++){
				int ct=0,out;
				for(int j=0;j<n;j++){
					if(hyou[i][j]>=0){
						ct++;
						if(hyou[i][j]==1) out=j;
					}
				}
				if(ct==1) cout<<a[out];
				else cout<<"?";
			}
			cout<<endl;
		}
	}
    return 0;
}