#include <bits/stdc++.h>
using namespace std;
int perm[20], nums[20];
int n, k;
int pw10[20];
bool DEBUG = false;
int fac(int n) {
  int res = 1;
  for (int i = 2; i <= n; i++) res *= i;
  return res;
}
int main(int argc, char** argv) {
  scanf("%d%d", &n, &k);
  for (int i = 0; i < 20; i++) {
    perm[i] = i;
    pw10[i] = i > 0 ? pw10[i - 1] * 10 : 1;
  }
  for (int i = 0; i < n; i++) {
    scanf("%d", &nums[i]);
  }
  int fk = fac(k);
  int res = (int)2e9;
  for (int f = 0; f < fk; f++) {
    if (DEBUG) {
      printf("###################################\n%d: ", f);
      for (int j = k - 1; j >= 0; j--) printf("%d", k - perm[j]);
      printf("\n");
    }
    int min_n = (int)2e9;
    int max_n = -min_n;
    for (int i = 0; i < n; i++) {
      int num = 0;
      for (int j = 0; j < k; j++) {
        num += ((nums[i] % pw10[j + 1]) / pw10[j]) * pw10[perm[j]];
      }
      if (DEBUG) printf("       %d   =>  %d\n", nums[i], num);
      if (num < min_n) min_n = num;
      if (num > max_n) max_n = num;
    }
    if (max_n - min_n < res) res = max_n - min_n;
    next_permutation(perm, perm + k);
  }
  printf("%d\n", res);
  return 0;
}
