#include<iostream> #include<cstdio> using namespace std; int max(int i,int j,int k){ if(i>j) return (i>k)?i:k; else if(i>k) return (i>j)?i:j; else return (j>k)?j:k; } int min(int i,int j){ return (i>j)?i:j; } int main(){ int p,t; float number; while(scanf("%d%d",&p,&t)!=EOF){ int g1,g2,g3,gj; scanf("%d%d",&g1,&g2); if(abs(g1-g2)<=t) number=(g1+g2)/2.0; else {scanf("%d",&g3); if(abs(g3-g2)<=t&&abs(g3-g1)<=t) number=max(g1,g2,g3); else if(abs(g3-g2)<=t||abs(g3-g1)<=t) number=(min(abs(g3-g2),g3-g1)+g3)/2.0; else {scanf("%d",&gj); number=gj;} } } printf("%.1f\n",number); return 0; }