#include<stdio.h>
#include<algorithm>
using namespace std;
long long h[1100];
char s[1100];
char t[1100];
int main(){
	int a,b,c;
	while(scanf("%d%d%d",&a,&b,&c),a){
		for(int i=0;i<b;i++)h[i]=(1LL<<a)-1;
		long long val=0;
		for(int i=0;i<c;i++){
			scanf("%s%s",s,t);
			long long key=0;
			for(int j=0;j<a;j++){
				if(s[j]=='1')key+=(1LL<<j);
			}
			val^=key;
			for(int j=0;j<b;j++){
				if(t[j]=='1'){
					h[j]&=val;
				}else {
					h[j]&=~val;
				}
			}
		}
		for(int i=0;i<b;i++){
			if(__builtin_popcountll(h[i])>1)printf("?");
			else{
				int at=0;
				for(int j=0;j<a;j++)if(h[i]==(1LL<<j))at=j;
				if(at<10)printf("%d",at);
				else printf("%c",'A'+at-10);
			}
		}
		printf("\n");
	}
}