#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 88;
int a[N], b[N], c[N], d[N], T, n;
bool cmp(const int &i, const int &j) { return b[i] > b[j]; }
int main() {
  scanf("%d%d", &n, &T);
  for (int i = 1; i <= n; ++i) scanf("%d", a + i);
  for (int i = 1; i <= n; ++i) scanf("%d", b + i);
  int tot1 = 0, tot2 = 0;
  long long s1 = 0, s2 = 0;
  for (int i = 1; i <= n; ++i) {
    if (b[i] <= T)
      s1 += 1LL * a[i] * (T - b[i]), c[tot1++] = i;
    else
      s2 += 1LL * a[i] * (b[i] - T), d[tot2++] = i;
  }
  double ans = 0;
  sort(c, c + tot1, cmp), sort(d, d + tot2, cmp);
  if (s1 >= s2) {
    for (int i = 0; i < tot2; ++i) ans += a[d[i]];
    double sum = s2;
    for (int i = 0; i < tot1; ++i) {
      sum -= 1LL * a[c[i]] * (T - b[c[i]]);
      if (sum >= 0)
        ans += a[c[i]];
      else {
        sum += 1LL * a[c[i]] * (T - b[c[i]]);
        ans += sum / (T - b[c[i]]);
        break;
      }
    }
  } else {
    for (int i = 0; i < tot1; ++i) ans += a[c[i]];
    double sum = s1;
    for (int i = tot2 - 1; i >= 0; --i) {
      sum -= 1LL * a[d[i]] * (b[d[i]] - T);
      if (sum >= 0)
        ans += a[d[i]];
      else {
        sum += 1LL * a[d[i]] * (b[d[i]] - T);
        ans += sum / (b[d[i]] - T);
        break;
      }
    }
  }
  printf("%.10f\n", ans);
}
