#include<bits/stdc++.h>
using namespace std;
char s[3001][3001],s_maxx[3001][3001],s_minn[3001][3001];
int main() {
freopen("dict.in","r",stdin);
freopen("dict.out","w",stdout);
int n,l;
scanf("%d%d",&n,&l);
memset(s,0,sizeof(s));
memset(s_maxx,0,sizeof(s_maxx));
memset(s_minn,0,sizeof(s_minn));
for(int i=1; i<=n; i++) {
scanf("%s",s[i]);
int dict[30];
memset(dict,0,sizeof(dict));
for(int j=0; j<l; j++) {
dict[s[i][j]-'a']++;
}
int cnt=0;
for(int j=1; j<=26&&cnt<l; j++) {
if(dict[j]==0)continue;
while(dict[j]>0) {
s_minn[i][cnt]='a'+j;
s_maxx[i][l-cnt-1]='a'+j;
dict[j]--;
cnt++;
}
}
}
for(int i=1; i<=n; i++) {
bool flag=1;
for(int j=1; j<=n; j++) {
if(i==j)continue;
if(strcmp(s_maxx[i],s_minn[j])==1) {
flag=0;
break;
}
}
if(flag==1)putchar('1');
else putchar('0');
}
return 0;
}