#include <bits/stdc++.h>
using namespace std;
int pow(int p) {
  int i = 1;
  for (int j = 0; j < p; j++) i *= 10;
  return i;
}
void genNumbers(vector<int>& numbers, const vector<int>& order) {
  for (size_t i = 0; i < numbers.size(); i++) {
    int number = 0;
    for (size_t j = 0; j < order.size(); j++)
      number += ((numbers[i] / pow(j)) % 10) * pow(order[j]);
    numbers[i] = number;
  }
}
int findMin(const vector<int>& a) {
  int min = 99999999;
  int max = 0;
  for (size_t i = 0; i < a.size(); i++)
    if (a[i] < min) min = a[i];
  for (size_t i = 0; i < a.size(); i++)
    if (a[i] > max) max = a[i];
  return max - min;
}
int main() {
  int n, k;
  cin >> n >> k;
  vector<int> indices(k);
  for (int i = 0; i < k; i++) indices[i] = i;
  vector<int> numbers(n);
  vector<int> permutation(n);
  for (int i = 0; i < n; i++) {
    cin >> numbers[i];
    permutation[i] = numbers[i];
  }
  if (n == 1) {
    cout << 0;
    return 0;
  }
  int min = 99999999;
  int minRet = findMin(numbers);
  if (minRet < min) min = minRet;
  while (next_permutation(indices.begin(), indices.end())) {
    genNumbers(permutation, indices);
    int minRet = findMin(permutation);
    if (minRet < min) min = minRet;
    for (size_t i = 0; i < permutation.size(); i++) permutation[i] = numbers[i];
  }
  cout << min;
}
