#include <bits/stdc++.h>
#if 0
using namespace std;
#define rep(i,a,n) for(int i=a; i<n; i++)
#define repq(i,a,n) for(int i=a; i<=n; i++)
#define repr(i,a,n) for(int i=a; i>=n; i--)
typedef long long ll;
typedef pair<int, int> pii;
#define int ll

template<typename T> void chmax(T &a, T b) {a = max(a, b);}
template<typename T> void chmin(T &a, T b) {a = min(a, b);}
template<typename T> void chadd(T &a, T b) {a = a + b;}

constexpr ll INF = 1001001001001001LL;
constexpr ll MOD = 1000000007LL;
#endif
signed main() {
    int N, K, T, U, V, L;
    scanf("%d %d %d %d %d %d", &N, &K, &T, &U, &V, &L);

    std::vector<int>  C(L+1);
    for (int i=0; i<N; ++i) {
        int D;
        scanf("%d", &D);
        ++C[D];
    }

    int num_carrot=0;
    int remain=0;
    std::vector<int> F(L+1);
    for (int i=0; i<=L; ++i) {
        if (remain-- > 0)
            F[i] = 1;

        if (C[i])
            ++num_carrot;

        if (num_carrot) {
            if (remain <= 0 || num_carrot > K) {
                --num_carrot;
                remain = V*T;
            }
        }
    }

    int dist[2]={};
    for (int i=0; i<L; ++i)
        ++dist[F[i+1]];

    printf("%.16f\n", (dist[0]*1.0/U)+(dist[1]*1.0/V));
    return 0;

    return 0;
}