#include <iostream>
using namespace std;
double max(int a, int b, int c) {
int temp = 0;
if (a > b) {
temp = a;
} else temp = b;
if (temp > c) {
temp = c;
}
double k = temp * 1.0;
return k;
}
int main() {
int P, T, G1, G2, G3, GJ;
cin >> P >> T >> G1 >> G2 >> G3 >> GJ;
double result = 0;
int k = abs(G1 - G2);
if (k <= T) {
result = (G1 + G2) / 2.0;
} else if (G3 <= T && G2 <= T && G1 <= T) {
result = max(G1, G2, G3);
} else if (G3 <= T && (G2 <= T || G1 <= T)) {
if (abs(G3 - G1) < abs(G3 - G2)) {
result = (G3 + G1) / 2.0;
} else {
result = (G3 + G2) / 2.0;
}
} else {
result = GJ * 1.0;
}
printf("%0.1f", result);
return 0;
}