#include #define int long long #define inf 0x3f3f3f3f3f3f3f3f #define maxn 1234567 #define eps 1e-7 #define mod 1000000007 #define Mod 998244353 #define f(i,a,b) for(int i=a;i<=b;i++) #define r(i,a,b) for(int i=a;i>=b;i--) #define fx(i,a,b,x) for(int i=a;i<=b;i+=x) #define rx(i,a,b,x) for(int i=a;i>=b;i-=x) using namespace std; int T; int n,ans; double cen,L,a[maxn]; void solve(){ scanf("%lld%lf",&n,&L); f(i,1,n-1){ scanf("%lf",&a[i]); if(fabs(a[i]-a[i-1])-L>-eps){ printf("-1\n"); return; } } cen=a[n-1]; r(i,n-2,0){ if((cen-(a[i+1]-L/2)>eps)&&((a[i+1]+L/2)-cen>eps)&&(cen-(a[i]-L/2)>eps)&&((a[i]+L/2)-cen>eps))ans++; cen=(cen*(double)(n-i-1)+a[i])/(double)(n-i); } printf("%lld\n",n-1-ans); } signed main(){ T=1; // scanf("%lld",&t); while(T--)solve(); return 0; }