#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, u, i, j;
  vector<int> v;
  scanf("%d%d", &n, &u);
  for (i = 0; i < n; i++) {
    scanf("%d", &j);
    v.push_back(j);
  }
  if (u < 2) {
    printf("-1\n");
    return 0;
  }
  vector<int>::iterator upper;
  double mx = 0;
  int flag = 0;
  for (i = 0; i < n - 2; i++) {
    upper = upper_bound(v.begin(), v.end(), v[i] + u);
    if (upper - v.begin() - 1 - i >= 2) {
      mx = max(mx, (double)(v[upper - v.begin() - 1] - v[i + 1]) /
                       (v[upper - v.begin() - 1] - v[i]));
      flag = 1;
    }
  }
  if (!flag)
    printf("-1\n");
  else
    printf("%.12lf\n", mx);
  return 0;
}
