#include<bits/stdc++.h>

#define sz(a) (int)a.size()
#define pb push_back
#define all(a) a.begin(), a.end()
#define for0(i, n) for(int i = 0; i < n; i++)
#define for1(i, n) for(int i = 1; i <= n; i++)
#define x first
#define y second
#define int long long

using namespace std;
typedef pair<int, int> pii;

int n, m, p;
int gr;
vector<int> vmask;
vector<string> stmask;

string maxdp(int posmask){
    string res;
    res.resize(m, '0');
    vector<int> tpos;
    for0(j, m)
        if(stmask[posmask][j] == '1')
            tpos.pb(j);


    int tn = sz(tpos);
    int N = (1 << tn);

    vector<int> dp(N, 0), d(N, 0);

    for0(i, N){
        int b = i;
        while(b){
            d[i] += b % 2;
            b /= 2;
        }
    }

    for0(i, n){
        int tt = 0;
        for(auto q : tpos){
            tt = 2 * tt + (stmask[i][q] == '1');
        }

        dp[tt] += 1;

    }

    for (int m=0; m < N; ++m)
        for (int s = m; s; s=(s-1)&m){
                if(s == 0) break;
            if(s != m)
                dp[s] += dp[m];
        }


    int max1 = 0, tans = 0;
    for0(i, N)
        if(dp[i] >= gr){
           // cout<<i<<' '<<d[i]<<": "<<dp[i]<<endl;
            if(d[i] > max1){
                max1 = d[i];
                tans = i;
            }
        }

    for(int i = tn-1; i >= 0; i--){
        res[tpos[i]] = (char)(tans % 2 + '0');
        tans /= 2;
    }


        return res;
}




signed main(){
    //ifstream cin("input.txt");
    //ofstream cout("output.txt");
       ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);


    cin >> n >> m >> p;
    gr = n / 2 + n % 2;
    string s;

    for0(i, n){
        cin >> s;
        stmask.pb(s);
    }


    string ans;
    int mx = 0;
    ans.resize(m, '0');

    srand(time(0));
    for0(i, 50){
        int tnum = (rand() * rand()) % n;
        //cout<<tnum<<' '<<stmask[tnum]<<endl;
        int k = 0;
        string tstr = maxdp(tnum);
        //cout<<"   tstr = "<<tstr<<endl;

        for(auto q : tstr)
            k += (q == '1');

        if(k > mx){
            mx = k;
            ans = tstr;
        }
    }

    cout << ans;

    //cout << maxdp(0);
}
