#include <bits/stdc++.h>
using namespace std;
double busGetBack(double v1, double t1, double v2, double t2) {
  double dist = t2 * v2 - t2 * v1;
  return dist / (v1 + v2);
}
double max(double a, double b) { return (a > b) ? a : b; }
bool canDo(double t, int n, double total_dist, double v1, double v2, int k) {
  double time_elapsed = 0;
  double t2 = (total_dist - t * v1) / (v2 - v1);
  if (t2 < 0) t2 = 0;
  while (n > 0) {
    double t1 = (total_dist - t2 * v2 - time_elapsed * v1) / v1;
    if ((t1 - (t - t2 - time_elapsed)) > 1e-9 || t1 < 0) return false;
    time_elapsed += busGetBack(v1, t1, v2, t2);
    time_elapsed += t2;
    n -= k;
  }
  return true;
}
double simulate(int n, double total_dist, double v1, double v2, int k) {
  double left = 0, right = (int)1e9 + 7;
  double ans = (int)1e9 + 7;
  while (right - left > 1e-9) {
    double mid = (left + right) / 2.0;
    if (canDo(mid, n, total_dist, v1, v2, k)) {
      right = mid;
      if (ans == mid) return ans;
      ans = mid;
    } else
      left = mid + 1e-9;
  }
  return ans;
}
int main() {
  int n, l, v1, v2, k;
  cin >> n >> l >> v1 >> v2 >> k;
  cout << fixed << setprecision(9) << simulate(n, l, v1, v2, k) << "\n";
}
