#include <bits/stdc++.h>
using namespace std;
int Max(int a, int b) { return a > b ? a : b; }
int Min(int a, int b) { return a < b ? a : b; }
char s[10][10];
int n, k;
int a[10], mi, ma, ans;
int flag[10];
void dfs(int t) {
  int i, j;
  if (t == k) {
    mi = ma = a[0];
    for (i = 1; i < n; ++i) {
      mi = Min(mi, a[i]);
      ma = Max(ma, a[i]);
    }
    ans = Min(ans, ma - mi);
    return;
  }
  for (i = 0; i < k; ++i) {
    if (flag[i]) {
      flag[i] = 0;
      for (j = 0; j < n; ++j) {
        a[j] *= 10;
        a[j] += s[j][i] - '0';
      }
      dfs(t + 1);
      for (j = 0; j < n; ++j) {
        a[j] /= 10;
      }
      flag[i] = 1;
    }
  }
}
int main() {
  int i;
  scanf("%d%d", &n, &k);
  for (i = 0; i < n; ++i) scanf("%s", s[i]);
  ans = 1000000000;
  memset(flag, 1, sizeof(flag));
  dfs(0);
  printf("%d\n", ans);
}
