#include <bits/stdc++.h>
using namespace std;
const long long maxll = numeric_limits<long long>::max();
const int maxint = numeric_limits<int>::max();
const int arr = 2e5 + 10;
const int ar = 2e3 + 10;
const long double pi = acos(-1);
const long long md = 1e9 + 7;
const long double eps = 1e-6;
template <typename name>
inline name b_pow(name base, long long exp, long long md = maxll) {
  if (exp == 0) return 1;
  if (exp % 2 == 1)
    return (base * b_pow(base, exp - 1, md)) % md;
  else {
    name k = b_pow(base, exp / 2, md);
    return (k * k) % md;
  }
}
template <typename nam, typename NAM>
inline nam toTyp(NAM x) {
  nam targ;
  stringstream ss;
  ss << x;
  ss >> targ;
  return targ;
}
vector<int> prefix_function(string s) {
  int n = (int)s.length();
  vector<int> pi(n);
  for (int i = 1; i < n; ++i) {
    int j = pi[i - 1];
    while (j > 0 && s[i] != s[j]) j = pi[j - 1];
    if (s[i] == s[j]) ++j;
    pi[i] = j;
  }
  return pi;
}
vector<vector<int> > operator*(vector<vector<int> > a, vector<vector<int> > b) {
  vector<vector<int> > res(8);
  for (int i = 0; i < 8; i++)
    for (int j = 0; j < 8; j++) res[i].push_back(0);
  for (int i = 0; i < 8; i++)
    for (int j = 0; j < 8; j++)
      for (int k = 0; k < 8; k++) res[i][j] += a[i][k] * b[k][j];
  return res;
}
vector<vector<int> > bpow(vector<vector<int> > a, int n) {
  if (n == 1) return a;
  if (n & 1) return a * bpow(a, n - 1);
  vector<vector<int> > dop = bpow(a, n / 2);
  return dop * dop;
}
template <typename nam>
inline nam mrg_sort(nam up, int l, int r) {
  nam targ = "";
  if (l == r) {
    targ = up[r];
    return targ;
  }
  int mid = (l + r) / 2;
  nam l_buff = mrg_sort(up, l, mid);
  nam r_buff = mrg_sort(up, mid + 1, r);
  int lp = 0, rp = 0;
  while (lp < l_buff.size() || rp < r_buff.size()) {
    if (lp == l_buff.size())
      targ = targ + r_buff[rp], rp++;
    else if (rp == r_buff.size())
      targ = targ + l_buff[lp], lp++;
    else if (r_buff[rp] > l_buff[lp])
      targ = targ + l_buff[lp], lp++;
    else
      targ = targ + r_buff[rp], rp++;
  }
  return targ;
}
double n, l, v1, v2, k, x, t, t1, d, sol;
int y;
int main() {
  cin >> n >> l >> v1 >> v2 >> k;
  y = ((n + k - 1) / k);
  sol = (l * ((y * 2.0 - 1.0) * v2 + v1)) / (v2 + (y * 2.0 - 1.0) * v1) / v2;
  printf("%.13lf", sol);
  return 0;
}
