#include <bits/stdc++.h>
using namespace std;
template <typename T, typename U>
ostream& operator<<(ostream& os, const pair<T, U>& _p) {
  return os << "(" << _p.first << "," << _p.second << ")";
}
template <typename T>
ostream& operator<<(ostream& os, const vector<T>& _V) {
  bool f = true;
  os << "[";
  for (auto v : _V) {
    os << (f ? "" : ",") << v;
    f = false;
  }
  return os << "]";
}
template <typename T>
ostream& operator<<(ostream& os, const set<T>& _S) {
  bool f = true;
  os << "(";
  for (auto s : _S) {
    os << (f ? "" : ",") << s;
    f = false;
  }
  return os << ")";
}
template <typename T, typename U>
ostream& operator<<(ostream& os, const map<T, U>& _M) {
  return os << set<pair<T, U>>(_M.begin(), _M.end());
}
const signed long long INF = 1000000100;
const long double EPS = 1e-9;
int main() {
  ios_base::sync_with_stdio(0);
  int n, k;
  double v1, v2, l;
  cin >> n >> l >> v1 >> v2 >> k;
  double st = 0, en = l;
  for (int(xx) = (1); (xx) <= (100); (xx)++) {
    double shot = (st + en) / 2;
    double rem = (l - shot) / v1;
    double delta = shot - v1 * (shot / v2);
    double ile = (max(0, n - k) + k - 1) / k;
    double roundtrip = delta / (v2 - v1) + delta / (v1 + v2);
    if (ile * roundtrip > rem)
      en = shot;
    else
      st = shot;
  }
  cout << setprecision(12) << fixed;
  cout << st / v2 + (l - st) / v1 << "\n";
}
