#include <bits/stdc++.h>
#define int long long
#define sz size()
#define pii pair<int, int>
using namespace std;
const int N = 100005;
int n, ans = LLONG_MAX;
int a[N];
int b[10];
int vis[10];
struct node {
int val, id;
};
vector<node> V;
bool cmp(node x, node y) {
return x.val < y.val;
}
signed main() {
for (int i = 1; i <= 6; i++)
scanf("%lld", &b[i]);
scanf("%lld", &n);
for (int i = 1; i <= n; i++) scanf("%lld", &a[i]);
for (int i = 1; i <= n; i++) for (int j = 1; j <= 6; j++) V.push_back({a[i] - b[j], i});
sort(V.begin(), V.end(), cmp);
int l = 0, r = -1;
while (l < n * 6 && r < n * 6) {
while (!(vis[1] && vis[2] && vis[3] && vis[4] && vis[5] && vis[6]) && r < n * 6 - 1)
r++, vis[V[r].id]++;
if (r == n * 6 - 1 && !(vis[1] && vis[2] && vis[3] && vis[4] && vis[5] && vis[6]))
break;
ans = min(ans, V[r].val - V[l].val);
vis[V[l].id]--;
l++;
}
printf("%lld", ans);
return 0;
}