#include <iostream>
#include <iomanip>
using namespace std;

int n, k, t, u, v, l, d[201];

double greedy()
{
    double time = 0;
    int carrot = 0;
    int next_carrot = 0;
    int place = 0;
    int dash_length = v * t;
    while (place < l) {
        if (carrot == 0) {
            int distance = d[next_carrot] - place;
            time += (double)distance / u;
            place = d[next_carrot];
            next_carrot++;
            carrot++;
        }
        else {
            if (place + dash_length < l) {
                carrot--;
                while (1) {
                    if (place + dash_length < d[next_carrot]) {
                        time += t;
                        place += dash_length;
                        break;
                    }
                    if (next_carrot == n) {
                        time += (double)(l - place) / v;
                        place = l;
                        break;
                    }
                    if (carrot < k) {
                        next_carrot++;
                        carrot++;
                    }
                    else {
                        time += (double)(d[next_carrot] - place) / v;
                        place = d[next_carrot];
                        next_carrot++;
                    }
                }
            }
            else {
                time += (double)(l - place) / v;
                place = l;
            }
        }
//        cout << "place" << place << endl;
//        cout << "carrot" << carrot << endl << endl;
    }
    return time;
}

int main()
{
    cin >> n >> k >> t >> u >> v >> l;
    for (int i = 0; i < n; i++) {
        cin >> d[i];
    }
    d[n] = l; // goal
    double ans = greedy();
    cout << fixed << setprecision(8) <<  ans << endl;
    return 0;
}