#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < n; i++)
using namespace std;
int dx[4] = {0, 0, 1, -1};
int dy[4] = {1, -1, 0, 0};
int main()
{
    int N, K, T, U, V, L;
    cin >> N >> K >> T >> U >> V >> L;
    int d[N + 1];
    rep(i, N)
    {
        cin >> d[i];
    }
    d[N] = L;
    int hav = 0;
    int nextDist = 0;
    double m = 0;
    rep(c, N + 1)
    {
        // cerr << nextDist << “,” << c << “,” << m << endl;
        if (nextDist <= d[c])
        {
            if (hav >= 1)
            {
                nextDist = nextDist + V * T;
                c--;
                hav--;
            }
            else
            {
                if (c != N)
                    nextDist = d[c] + V * T;
            }
        }
        else
        {
            if (hav + 1 <= K)
            {
                if (c != N)
                    hav++;
                else
                    m += nextDist - d[c];
            }
            else
            {
                m += nextDist - d[c];
                if (c != N)
                    nextDist = d[c] + V * T;
            }
        }
        // cout << m << endl;
        // cout << (double)(N * V * T - m) / (double)V + (double)(L - (N * V * T - m)) / (double)U << endl;
    }

    m += hav * V * T;
    // cout << 1 << “+” << (double)(N * V * T - m) / (double)V + (double)(L - (N * V * T - m)) / (double)U << endl;
    // cout << 1 << “+” << (double)(N * V * T - m) / (double)V + (double)(L - (N * V * T - m)) / (double)U << endl;
    double ans = (double)(N * V * T - m) / (double)V + (double)(L - (N * V * T - m)) / (double)U;
    printf("% 0.10lf\n", ans);
    return 0;
}
