#include <bits/stdc++.h>
using namespace std;
bool nextper(int num[], int n) {
  int i;
  for (i = n - 1; i > 0; i--) {
    if (num[i] > num[i - 1]) {
      for (int j = n - 1; j >= i; j--) {
        if (num[j] > num[i - 1]) {
          int t = num[j];
          num[j] = num[i - 1];
          num[i - 1] = t;
          for (int m = i, k = n - 1; m < k; m++, k--) {
            t = num[m];
            num[m] = num[k];
            num[k] = t;
          }
          break;
        }
      }
      break;
    }
  }
  if (i > 0) {
    return true;
  } else
    return false;
}
int order[8] = {0, 1, 2, 3, 4, 5, 6, 7};
char s[8][9];
int main() {
  int n, k, i, j, min, max, num, ans = 2147483647;
  scanf("%d %d", &n, &k);
  for (i = 0; i < n; i++) scanf("%s", s[i]);
  do {
    min = 2147483647;
    max = 0;
    for (i = 0; i < n; i++) {
      num = 0;
      for (j = 0; j < k; j++) num = num * 10 + (s[i][order[j]] - '0');
      if (min > num) min = num;
      if (max < num) max = num;
    }
    if (max - min < ans) ans = max - min;
  } while (nextper(order, k));
  printf("%d\n", ans);
}
