#include<iostream>
#include<cstdio>
using namespace std;
int n,m,t;
int main()
{
	while(cin>>n>>m>>t,n)
	{
		string s[1001],b[1001];
		s[0]=string(n,'0');
		b[0]=string(m,'0');
		for(int i=0;i++<t;)cin>>s[i]>>b[i];
		bool check[1000]={};
		string ans(m,'?');
		for(int i=0;i<m;i++)
		{
			bool ok[36]={};
			for(int j=0;j<n;j++)ok[j]=1;
			for(int j=0;j++<t;)
			{
				if(b[j-1][i]!=b[j][i])
				{
					for(int k=0;k<n;k++)ok[k]&=s[j][k]=='1';
				}
				else
				{
					for(int k=0;k<n;k++)ok[k]&=s[j][k]=='0';
				}
			}
			int cnt=0,mi;
			for(int j=0;j<n;j++)if(ok[j])cnt++,mi=j;
			if(cnt==1)
			{
				ans[i]=(char)(mi<10?mi+'0':mi-10+'A');
				check[i]=1;
			}
		}
		int cnt=0,mi;
		for(int i=0;i<n;i++)if(ans[i]=='?')cnt++,mi=i;
		if(cnt==1)
		{
			for(int i=0;i<m;i++)if(!check[i])ans[i]=(char)(mi<10?mi+'0':mi-10+'A');
		}
		cout<<ans<<endl;
	}
}

