#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;
}