#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:256000000")
using namespace std;
const long double PI = acosl((long double)-1.0);
const long long LINF = 1e18;
const int MOD = 1000000007;
int test;
const int MAXN = 10005;
int len, n, k, v1, v2;
long double t[2][MAXN], timer;
void init() { scanf("%d%d%d%d%d", &n, &len, &v1, &v2, &k); }
void check(int cur, long double dist) {
  timer = 0.0;
  long double s1 = 0.0;
  long double s2 = 0.0;
  for (int i = 1; i <= n; i++) {
    timer += (s2 - s1) / (v1 + v2);
    s1 = s2 = s1 + (s2 - s1) / (v1 + v2) * v1;
    long double ost = min(dist, len - s1);
    timer += ost / v2;
    t[cur][i] = timer + (len - s1 - ost) / v1;
    s2 += ost;
    s1 += ost / v2 * v1;
  }
}
void solve() {
  init();
  n = (n + k - 1) / k;
  if (n == 1) {
    printf("%.10lf\n", (long double)len / (v2));
    return;
  }
  long double dist =
      len / (1.0 + (n - 1.0) * ((long double)v1 / v2 +
                                (long double)v1 / (v1 + v2) *
                                    (long double)(v2 - v1) / (v2)));
  long double tim =
      dist * (n - 1.0) *
          ((long double)v1 / v2 +
           (long double)v1 / (v1 + v2) * (long double)(v2 - v1) / (v2)) /
          v1 +
      dist / v2;
  cout.precision(15);
  cout << fixed << tim;
}
void precalc() {}
int main() {
  srand(25);
  precalc();
  int tests = 1;
  for (test = 1; test <= tests; test++) {
    solve();
  }
  return 0;
}
