#include <bits/stdc++.h>
bool fr[10] = {};
int c[10] = {};
int n, k, res;
char a[10][10] = {};
using namespace std;
void file_open() {
  freopen("test.txt", "rt", stdin);
  freopen("test.out", "wt", stdout);
}
int fromchar(char x[]) {
  char tmp[10] = {};
  for (int i = 1; i <= k; ++i) {
    tmp[i - 1] = x[c[i] - 1];
  }
  return atoi(tmp);
}
void tinh() {
  int tmp, min, max;
  min = INT_MAX;
  max = INT_MIN;
  for (int i = 0; i < n; ++i) {
    tmp = fromchar(a[i]);
    if (tmp > max) max = tmp;
    if (tmp < min) min = tmp;
  }
  if (max - min < res) res = max - min;
}
void tim(int i) {
  for (int j = 1; j <= k; ++j) {
    if (!fr[j]) {
      c[i] = j;
      fr[j] = true;
      if (i == k)
        tinh();
      else
        tim(i + 1);
      fr[j] = false;
    }
  }
}
int xuli() {
  scanf("%d%d", &n, &k);
  for (int i = 0; i < n; ++i) {
    cin >> a[i];
  }
  res = INT_MAX;
  tim(1);
  printf("%d", res);
  return 0;
}
int main() {
  xuli();
  return 0;
}
