#include <iostream>
#include <iomanip>
using namespace std;

double absminus(double a, double b) {
    if (a >= b)
        return a - b;
    else
        return b - a;
}

double maxdigit(double a, double b, double c) {
    if (a >= b && a >= c)
        return a;
    else if (b >= a && b >= c)
        return b;
    else
        return c;
}

double averageclosest(double a, double b, double c) {
    if (absminus(a, b) >= absminus(a, c))
        return (a + b) / 2;
    else
        return (a + c) / 2;
}

int main() {
    double p, t, g1, g2, g3, gj;
    double finalgrade;
    while (cin >> p >> t >> g1 >> g2 >> g3 >> gj) {
        if (absminus(g1, g2) <= t)
            finalgrade = (g1 + g2) / 2;
        else if ((absminus(g3, g1) <= t) && (absminus(g3, g2) <= t))
            finalgrade = maxdigit(g1, g2, g3);
        else if ((absminus(g3, g1) > t) && (absminus(g3, g2) > t))
            finalgrade = gj;
        else
            finalgrade = averageclosest(g3, g1, g2);
        cout.setf(ios::fixed);
        cout.precision(1);
        cout << finalgrade << endl;
    }
    return 0;
}