/**
 * code generated by JHelper
 * More info: https://github.com/AlexeyDmitriev/JHelper
 * @author codelegend
 */

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using PII = pair<int, int>;
using VI = vector<int>;
#define fst first
#define snd second

void prec() {}

const int N = 2e5 + 5;
string masks[N];

void solve(istream &cin, ostream &cout) {
  int n, m, p;
  cin >> n >> m >> p;
  for (int i = 0; i < n; i++) {
    cin >> masks[i];
  }
  const auto SEED = chrono::steady_clock::now().time_since_epoch().count();
  mt19937 rng(SEED);
  uniform_int_distribution<> dis(0, n - 1);
  pair<int, string> best(-1, "");
  vector<bool> seen(n);
  int used = 0;
  for (int it = 0; it < 100 && used < 30; it++) {
    const int i = dis(rng);
    if (seen[i]) continue;
    seen[i] = true;
    used++;
    VI idxs;
    for (int c = 0; c < m; c++) {
      if (masks[i][c] == '1') idxs.push_back(c);
    }
    const int sz = idxs.size();
    VI A(1 << sz), F(1 << sz);
    for (int j = 0; j < n; j++) {
      int cur = 0;
      for (int idx = 0; idx < sz; idx++) {
        const int c = idxs[idx];
        if (masks[j][c] == '0') cur |= (1 << idx);
      }
      A[cur]++;
    }
    for (int mask = 0; mask < (1 << sz); mask++) {
      F[mask] = A[0];
      // iterate over all the subsets of the mask
      for (int j = mask; j > 0; j = (j - 1) & mask) {
        F[mask] += A[j];
      }
      if (F[mask] >= (n + 1) / 2 && sz - __builtin_popcount(mask) > best.fst) {
        best.fst = sz - __builtin_popcount(mask);
        best.snd = string(m, '0');
        for (int j = 0; j < sz; j++) {
          if ((mask & (1 << j)) == 0) best.snd[idxs[j]] = '1';
        }
      }
    }
  }
  cout << best.snd << '\n';
}

//====== Submission Template ========//
#include <fstream>
#include <iostream>

struct DLoveHate {
  int case_num = 0;
  void solve(std::istream &in, std::ostream &out) {
#ifdef PRINT_CASE_NUMBERS
    case_num++;
    out << "Case #" << case_num << ": ";
#endif
    ::solve(in, out);
  }
};

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  prec();
  DLoveHate solver;
  std::istream &in(std::cin);
  std::ostream &out(std::cout);
  solver.solve(in, out);
  return 0;
}
