#include<iostream>
using namespace std;
const int N = 10010;
int a[N], b[N], c[N];
int abs_(int x){
if(x>0) return x;
else return -x;
}
bool xls_min(int a, int b, int c){
if(a<=b && a<=c) return true;
else return false;
}
int findminoftrip(int a[], int n, int b[], int m, int c[], int l){
int i=0, j=0, k=0, D_min = 999;
while(i<n && j<m && k<l && D_min>0){
int D = abs_(a[i]-b[j]) + abs_(b[j]-c[k]) + abs_(c[k]-a[i]);
if(D < D_min) D_min = D;
if(xls_min(a[i], b[j], c[k])) i++;
else if(xls_min(b[j], c[k], a[i])) j++;
else k++;
}
return D_min;
}
int main(){
int n, m, k;
cin>>n>>m>>k;
for(int i=0; i<n; i++){
cin>>a[i];
}
for(int i=0; i<m; i++) cin>>b[i];
for(int i=0; i<k; i++) cin>>c[i];
cout<<findminoftrip(a, n, b, m, c, k);
return 0;
}