#include <bits/stdc++.h>
using namespace std;
// 对数以万计的考研试卷进行评分是一项艰巨的工作。设计一个尽可能公平的评价过程更加困难。一种方法是让每个考试问题分配给3位独立专家。如果他们对结果不一致,则邀请裁判做出最终决定。现在,您被要求编写一个程序来帮助这个过程。对于每个问题,都有一个满分P和一个容差T(<P)给出。评分规则如下:
// · 一个问题首先被分配给2位专家,以获取G1和G2。如果差异在容差范围内,即|G1 - G2| ≤ T,则该问题的分数将是G1和G2的平均值。
// · 如果差异超过T,第3位专家将给出G3。
// · 如果G3与G1或G2中的任何一个都在容差范围内,但两者都不在,则该问题的分数将是G3和最接近分数的平均值。
// · 如果G3与G1和G2中的任何一个都在容差范围,则该问题的分数将是三个分数中的最大值。
// · 如果G3与G1、G2中的任何一个都在容差范围之内,则该问题的分数将是G3和G1、G2中最接近分数的平均值。

// 每个输入文件可以包含多个测试用例。每个测试用例占用一行,包含六个正整数:P、T、G1、G2、G3和GJ,如问题中所述。可以保证所有成绩都是有效的,即在区间【0, P】内。

// 对于每个测试用例,您应该在一行中输出问题的最终分数。答案必须精确到小数点后一位。
int main() {
    int p, t, g1, g2, g3, gj;
    while (cin >> p >> t >> g1 >> g2 >> g3 >>
            gj) { // 注意 while 处理多个 case
        double ans = 0;
        if (abs(g1 - g2) <= t) {
            ans = (g1 + g2) / 2.0;
        } else {
            if (abs(g3 - g1) <= t && abs(g3 - g2) <= t) {
                ans = max(g3, max(g1, g2));
            } else {
                if (abs(g3 - g1) <= t) {
                    ans = (g1 + g3) / 2.0;
                } else {
                    ans = (g2 + g3) / 2.0;
                }
            }
        }
        printf("%.1f\n",ans);
    }
    return 0;
}
// 64 位输出请用 printf("%lld")