#include <iostream>
#include <string>
#include <stdlib.h>     /* srand, rand */
#include <time.h>       /* time */
#include <vector>
using namespace std;
int countu(long long u){
int br=0;
while(u>0) {if(u%2) br++; u/=2;}
return br;
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n,m,p; cin>>n>>m>>p;
    string s[n];
    srand(time(0));
    for(int i=0;i<n;i++) cin>>s[i];
    vector <int> vp[n],ans;
    for(int i=0;i<n;i++) for(int j=0;j<m;j++) if(s[i][j]=='1') vp[i].push_back(j);
    int goal=(n+1)/2;
    int T=32;
    int x,sz;
    long long y;

    for(int t=1;t<=T;t++){

        y=(((long long)rand()*rand())%n)*rand();
        y%=n;
        x=(int)y;
        //cout<<t<<x<<endl;
        sz=vp[x].size();
  		vector<int> dp(1<<sz),dp2(1<<sz);
		for(int i=0;i<n;i++){
			int mask=0;
			for(int j=0;j<sz;j++){
				if(s[i][vp[x][j]]=='1') mask+=(1<<j);
			}
			dp[mask]++;
		}
        int bm=0;
		int bmval=0;
		for(int u=(1<<sz)-1;u>=0;u--){
			for(int s=u; s; s=(s-1)&u){
				dp2[s]+=dp[u];
			}
			if(dp2[u]>=goal&&countu(u)>bmval){
				bm=u;
				bmval=countu(u);
			}
		}
		vector<int> anst;
		for(int i=0; i<sz; i++){
			if(bm&(1<<i)) anst.push_back(vp[x][i]);
		}
		if(anst.size()>ans.size()) ans=anst;
		}
	string anss(m,'0');
	for(int i:ans) anss[i]='1';
	cout<<anss;
    return 0;
}
