#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2e3 +7;
int n, m, ans;
bitset<MAXN> A[MAXN];
bool gss() {
for (int i = 1; i <= n; i ++) {
int tmp = i;
while (tmp <= m && !A[tmp].test(i)) tmp ++;
if (tmp > m) return false;
if (tmp != i) swap(A[i], A[tmp]);
ans = max(ans, tmp);
for (int k = 1; k <= m; k ++)
if (i != k && A[k].test(i))
A[k] ^= A[i];
}
return true;
}
int main () {
cin >> n >> m;
for (int i = 1; i <= m; i ++) {
int cnt = 0;
char s; s = getchar(); s = getchar();
while (s != ' ') {
A[i].set(++ cnt, s - '0');
s = getchar();
}
s = getchar();
A[i].set(++ cnt, s - '0');
}
if (! gss()) cout << "Cannot Determine", exit(0);
cout << ans << '\n';
for (int i = 1; i <= n; i ++)
cout << (A[i].test(n + 1) == 0 ? "Earth\n" : "?y7M#\n");
return 0;
}