#include <bits/stdc++.h>
using namespace std;
vector<pair<long long, long long> > v;
int sol(int I) {}
int main() {
  cin.tie(0);
  cin.sync_with_stdio(0);
  int n, m;
  cin >> n >> m;
  vector<vector<long long> > gr(n, vector<long long>(m));
  for (int i = 0; i < (n); i++) {
    int I = i;
    for (int i = 0; i < (m); i++) cin >> gr[I][i];
  }
  for (int i = 0; i < (n); i++) {
    int I = i;
    for (int i = 0; i < (m); i++) {
      int I2 = i;
      vector<long long> v(m);
      for (int i = 0; i < I2; i++) {
        if (gr[I][i]) v[i] = 1;
      }
      for (int i = I2; i < m; i++) {
        if (!gr[I][i]) v[i] = 1;
      }
      vector<long long> vv(n);
      for (int r = 0; r < n; r++) {
        if (r != I) {
          vector<long long> v2 = gr[r];
          int a = 0, b = 0;
          for (int i = 0; i < (m); i++) {
            a += (v2[i] == v[i]);
            b += (v2[i] != v[i]);
          }
          if (a == m) {
            if (r < I)
              vv[r] = 0;
            else
              vv[r] = 1;
          } else if (b == m) {
            if (r < I)
              vv[r] = 1;
            else
              vv[r] = 0;
          } else
            goto nex;
        }
      }
      cout << "YES\n";
      for (int i = 0; i < (n); i++) cout << vv[i];
      cout << '\n';
      for (int i = 0; i < (m); i++) cout << v[i];
      return 0;
    nex:;
    }
  }
  cout << "NO";
}
