#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define all(x) x.begin(), x.end()

int main(){
	ios::sync_with_stdio(0); cin.tie(0);
	mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
	int n, m, p; cin >> n >> m >> p;
	vector<ll> a(n);
	for(int i = 0; i < n; ++i){
		a[i] = 0;
		for(int j = 0; j < m; ++j){
			char c; cin >> c;
			if(c == '1') a[i] ^= (1ll << j);
		}
	}
	ll ans_mask = 0, cnt = 0;
	int it = 35; // hmm
	while(it--){
		int ps = uniform_int_distribution<int>(0, n - 1)(rng);
		vector<int> bits;
		for(int j = 0; j < m; ++j)
			if((a[ps] >> j) & 1) bits.push_back(j);
		int K = (int)bits.size();
		vector<ll> dp(1 << K, 0);
		for(int i = 0; i < n; ++i){
			int mask = 0;
			for(int j = 0; j < K; ++j){
				if((a[i] >> bits[j]) & 1) mask ^= (1 << j);
			}
			++dp[mask];
		}
		for(int i = 0; i < K; ++i){
			for(int j = 0; j < (1 << K); ++j){
				if(!(j & (1 << i)))
					dp[j] += dp[j ^ (1 << i)];
			}
		}
		for(int i = 0; i < (1 << K); ++i){
			if(dp[i] * 2 < n || __builtin_popcountll(i) < cnt) continue;
			cnt = __builtin_popcountll(i);
			ans_mask = 0;
			for(int j = 0; j < K; ++j){
				if((i >> j) & 1) ans_mask ^= (1ll << bits[j]);
			}
		}
	}
	for(ll i = 0; i < m; ++i){
		cout << ((ans_mask >> i) & 1);
	}
}
