#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <stack>
#include <queue>
#include <vector>
using namespace std;
//
int num[9];//存字符的下标
char ch[9][9];//存数字
int n,m;
int work()
{
char c[m+1];
int maxn=-999999999;
int minn=999999999;
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
c[j]=ch[i][num[j]];
}
c[m]='\0';
int t=atoi(c);//将字符串转换为数字
maxn=max(maxn,t);
minn=min(minn,t);
}
return abs(maxn-minn);
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=0; i<n; i++)
{
scanf("%s",ch[i]);
}
int ans=999999999;
for(int i=0;i<m;i++)
num[i]=i;
do
{
ans=min(ans,work());
}
while(next_permutation(num,num+m));
printf("%d\n",ans);
return 0;
}