RT
//100pts(?)
#include<iostream>
#include<iomanip>
using namespace std;
const int N=3e3+5;
string a[N],b[N];
int zg[N],zd[N];
int wz[N],ans[N],wz1[N];
int n,m;
bool check(int t)
{
for(int i=1;i<=n;i++){
if(a[t]>a[i]){
return 0;
}
}
return 1;
}
int main()
{
//freopen("dict.in","r",stdin);
// freopen("dict.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=n;i++){
zd[i]=200;
}
for(int i=1;i<=n;i++){
cin>>a[i];
for(int j=0;j<=m-1;j++){
if(zg[i]<a[i][j]){
zg[i]=a[i][j];
wz[i]=j;
}
if(zd[i]>=a[i][j]){
zd[i]=a[i][j];
wz1[i]=j;
}
}
}
for(int i=1;i<=n;i++){
swap(a[i][0],a[i][wz1[i]]);
for(int j=1;j<=n;j++){
if(j!=i){
swap(a[j][0],a[j][wz[j]]);
}
}
if(check(i))ans[i]=1;
swap(a[i][0],a[i][wz1[i]]);
for(int j=1;j<=n;j++){
if(j!=i){
swap(a[j][0],a[j][wz[j]]);
}
}
}
for(int i=1;i<=n;i++)cout<<ans[i];
return 0;
}