#include <bits/stdc++.h>
using namespace std;
int minn[1000009][24], maxx[1000009][24], b[1000009], a[1000009];
inline bool check(int mid, int i, int n) {
  pair<int, int> q;
  int p = (log(i - mid + 1)) / (log(2));
  q.first = max(maxx[i][p], maxx[mid - (1 << p) + 1][p]);
  q.second = min(minn[i][p], minn[mid - (1 << p) + 1][p]);
  if (q.first * 100 < q.second) {
    return true;
  }
  return false;
}
int main() {
  int n, k;
  scanf("%d", &n);
  scanf("%d", &k);
  int ans[n + 1];
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
  }
  for (int i = 1; i <= n; i++) {
    scanf("%d", &b[i]);
  }
  ans[n] = min(a[n] * 100, b[n]);
  for (int i = n - 1; i >= 0; i--) {
    if (a[i] * 100 >= b[i]) {
      ans[i] = b[i];
    } else {
      ans[i] = max(a[i] * 100, min(b[i], ans[i + 1]));
    }
  }
  sort(ans + 1, ans + 1 + n);
  long double fans = 1.0, res = ans[1];
  for (int i = 2; i <= n; i++) {
    long double temp = n - k - (i - 2);
    temp = temp / (n - (i - 2));
    fans = fans * temp;
    res = res + (fans * (ans[i] - ans[i - 1]));
  }
  cout.precision(12);
  cout << res << "\n";
}
