#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m;
string lis[3005],tr[3005];
bool first_minner_second(string a,string b){
for(int i=0;i<m;i++){
if(a[i]<b[i])return true;
if(a[i]>b[i])return false;
}
}
signed main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>lis[i];
for(int bit=1;bit<=n;bit++){
for(int i=1;i<=n;i++)tr[i]=lis[i];
for(int i=1;i<n;i++){
if(i==bit)continue;
int min_char_bit;
char min_char='z';
for(int j=0;j<m;j++){
if(tr[i][j]<min_char){
min_char=tr[i][j];
min_char_bit=j;
}
}
swap(tr[i][0],tr[i][min_char_bit]);
}
string min_str="";
min_str+='z'*m;
int min_str_bit;
for(int i=1;i<=n;i++){
if(first_minner_second(tr[i],min_str)){
min_str=tr[i];
min_str_bit=i;
}
}
if(min_str_bit==bit)cout<<1;
else cout<<0;
}
return 0;
}