#include <bits/stdc++.h>
using namespace std;
typedef int vect[20][1 << 20];
int mn(int i, int j, vect vec) {
  int p = 31 - __builtin_clz(j - i);
  return min(vec[p][i], vec[p][j - (1 << p)]);
}
int mx(int i, int j, vect vec) {
  int p = 31 - __builtin_clz(j - i);
  return max(vec[p][i], vec[p][j - (1 << p)]);
}
void mn_init(int n, vect vec) {
  int make_pair = 31 - __builtin_clz(n);
  for (int p = 0; p < (int)(make_pair); p++)
    for (int x = 0; x < (int)(n - (1 << p)); x++)
      vec[p + 1][x] = min(vec[p][x], vec[p][x + (1 << p)]);
}
void mx_init(int n, vect vec) {
  int make_pair = 31 - __builtin_clz(n);
  for (int p = 0; p < (int)(make_pair); p++)
    for (int x = 0; x < (int)(n - (1 << p)); x++)
      vec[p + 1][x] = max(vec[p][x], vec[p][x + (1 << p)]);
}
const int MAXN = 1E6 + 100;
int n, k, v[MAXN], c[MAXN];
vect vmax, cmin;
int best[MAXN];
pair<int, int> go(int l, int r) {
  r++;
  pair<int, int> res;
  res.first = mx(l, r, vmax);
  res.second = mn(l, r, cmin);
  return res;
}
int eval(int l, int r) {
  auto xy = go(l, r);
  return min(100 * xy.first, xy.second);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> k;
  for (int i = 0; i < (int)(n); i++) cin >> v[i];
  for (int i = 0; i < (int)(n); i++) cin >> c[i];
  for (int i = 0; i < (int)(n); i++) {
    vmax[0][i] = v[i];
    cmin[0][i] = c[i];
  }
  mx_init(n, vmax);
  mn_init(n, cmin);
  for (int l = 0; l < (int)(n); l++) {
    double lo = l - 1, hi = n;
    while (lo + 1 < hi) {
      int mi = (lo + hi) / 2;
      auto xy = go(l, mi);
      int x = xy.first, y = xy.second;
      if (y <= 100 * x)
        hi = mi;
      else
        lo = mi;
    }
    best[l] = 0;
    int r;
    r = hi - 1;
    if (r >= l && r < n) best[l] = max(best[l], eval(l, r));
    r++;
    if (r >= l && r < n) best[l] = max(best[l], eval(l, r));
  }
  sort(best, best + n);
  double res = 0, prob = k / double(n);
  for (int i = 0; i < (int)(n - k + 1); i++) {
    res += best[i] * prob;
    prob *= n - k - i;
    prob /= n - 1 - i;
  }
  cout << fixed << setprecision(10) << res << endl;
  return 0;
}
