#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
 
ll overlap(ll L1, ll R1, ll L2, ll R2) {
    return max(0LL, min(R1, R2) - max(L1, L2));
}
ll red_line(vector<pair<ll, ll>> v) {
    sort(v.begin(), v.end());
    ll result = 0;
    ll L = v[0].first, R = v[0].second;
     
    for(int i = 1; i < 3; i++) {
        if(v[i].first <= R) {
            R = max(R, v[i].second);
        }
        else {
            result += R - L;
            L = v[i].first;
            R = v[i].second;
        }
    }
     
    result += R - L;
    return result;
}
int main() {
    vector<pair<ll, ll>> v(3);
     
    for(int i = 0; i < 3; i++) {
        cin >> v[i].first >> v[i].second;
    }
     
    ll K;
    cin >> K;
     
    ll len = 0;
    vector<int> idx = {0, 1, 2};
    do {
        vector<pair<ll, ll>> tmp = {v[idx[0]], v[idx[1]], v[idx[2]]};
         
        ll full_len = (tmp[0].second - tmp[0].first) + (tmp[1].second - tmp[1].first) + (tmp[2].second- tmp[2].first);
         
        ll res2 = red_line(tmp);
        ll res = min(full_len, res2 + K);
        len = max(len, res);
         
    } while(next_permutation(idx.begin(), idx.end()));
     
    cout << len << endl;
    return 0;
}