#include<bits/stdc++.h>
using namespace std;
const int N=3e3+10;
int d[N][30];
int n,m;
int maxn[N],minn[N];
char ans[N];
char s[N];
bool Work(int i,int r,int j,int l) {
if(r < l) return true;
if(r > l) return false;
if(r == l) {
if(d[i][r] >= d[j][l]) return false;
if(d[i][r] < d[j][l]) return true;
}
return true;
}
int main() {
memset(minn,100,sizeof(minn));
scanf("%d%d",&n,&m);
for(int i = 1;i <= n;i++) {
getchar();
for(int j=1;j<=m;j++)
scanf("%c",s+j);
for(int j = 1;j <= m;j++) {
int a;
a = s[j]-'a'+1;
d[i][a]++;
if(a < minn[i]) minn[i] = a;
if(a > maxn[i]) maxn[i] = a;
}
}
for(int i = 1;i <= n;i++) {
bool flag = true;
for(int j = 1;j <= n;j++) {
if(i == j) continue;
flag=Work(i,minn[i],j,maxn[j]);
if(!flag) break;
}
if(!flag) ans[i] = '0';
else ans[i] = '1';
}
for(int i=1;i<=n;i++) printf("%c",ans[i]);
return 0;
}