#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define endl "\n"
ll P=1e9+7;
ll a[200001];
ll maxi[200001];
ll mini[200001];
ll prefix[200001][6];
ll suffix[200001][6];
void solve(){
    ll i,j,k,l,m,n,o,p,q,r,g,s,x,pos,d;
    vector<ll> v(6);
    for(i=0;i<6;i++){
        cin>>v[i];
    }
    sort(v.begin(),v.end());
    cin>>n;
    for(j=0;j<6;j++){
        prefix[0][j]=LLONG_MAX;
        suffix[n+1][j]=0;
    }

    for(i=1;i<=n;i++){
        cin>>a[i];
        maxi[i]=0;
        mini[i]=1e17;
    }
    sort(a+1,a+n+1);
    for(i=1;i<=n;i++){
        for(j=0;j<6;j++){
            ll note=a[i]-v[j];
            for(k=0;k<6;k++){
                prefix[i][j]=min(prefix[i-1][k],note);
            }
            
        }
    }

    ll ans=LLONG_MAX;
    for(i=n;i>=1;i--){
        for(j=0;j<6;j++){
             ll note=a[i]-v[j];
             for(k=0;k<6;k++){
                 suffix[i][j]=max(suffix[i+1][k],note);
             }
        }
    }
    for(i=1;i<=n;i++){
        for(j=0;j<6;j++){
            ans=min(ans,suffix[i][j]-prefix[i][j]);
        }
    }
    cout<<ans<<endl;
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    ll t=1;
    //cin>>t;
    while(t--){
        solve();
    }
    return 0;
}
