#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 9;
int a[N], b[10], cnt[N];
struct node {
  int p, id;
  node(int p = 0, int id = 0) : p(p), id(id) {}
} x[N * 6];
int main() {
  for (int i = (0); i < (6); ++i) scanf("%d", &b[i]);
  int n;
  scanf("%d", &n);
  for (int i = (0); i < (n); ++i) scanf("%d", &a[i]);
  int c = 0;
  for (int i = (0); i < (n); ++i) {
    for (int j = (0); j < (6); ++j) {
      x[c++] = node(a[i] - b[j], i);
    }
  }
  sort(x, x + c, [](node &a, node &b) { return a.p < b.p; });
  int sum = 0, l = 0, r = 0, ans = 2e9;
  for (; r < n * 6; ++r) {
    if (!cnt[x[r].id]++) ++sum;
    if (sum == n) {
      for (; l < 6 * n; ++l) {
        if (cnt[x[l].id] == 1) {
          break;
        } else
          --cnt[x[l].id];
      }
      ans = min(x[r].p - x[l].p, ans);
    }
  }
  cout << ans;
}
