#include <bits/stdc++.h>
using namespace std;
struct T {
  int x, r;
  bool operator<(const T& o) const { return x < o.x; }
};
T arr[100005];
int f, c, nums[1000000];
char a[1000000], b[1000000];
int la, lb;
int mat[1001][1001];
char matc[1001][1001];
int n, m;
int fact[10];
int permu[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int dig[10][10];
int main() {
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    cin >> a;
    for (int j = 0; j < m; j++) dig[i][j] = a[j] - '0';
  }
  fact[1] = 1;
  for (int i = 2; i < 10; i++) fact[i] = fact[i - 1] * i;
  int minresp = 1000000000;
  for (int i = 0; i < fact[m]; i++) {
    for (int j = 0; j < n; j++) {
      nums[j] = 0;
      for (int k = 0; k < m; k++) nums[j] = 10 * nums[j] + dig[j][permu[k]];
    }
    sort(nums, nums + n);
    minresp = min(nums[n - 1] - nums[0], minresp);
    next_permutation(permu, permu + m);
  }
  cout << minresp;
  return 0;
}
