#include<iostream>
#include<stack>
#include<queue>
#include<math.h>
#include<algorithm>
#include <iomanip>
using namespace std;
#define FOR(k,m,n) for(int (k)=(m);(k)<(n);(k)++)
#define rep(i,n) FOR((i),0,(n))
#define N_MAX 201
#define L_MAX 10001
#define ll long long


//??????????????¨??????
int N,K,T,U,V,L;
int D[N_MAX];

//????§???????index(m)?????¨???????????°??£???????????????
bool run[L_MAX];

//?????¨???????????????????????£????????????
int carrot=0;

//???????????????????????°???????????¨???m?¶??????§?????????
int lestRun=0;

//?¬???????????????????D???????????????
int nextCarrot=0;

//????§??????????????????????????????§??????
int meter=0;

int main() {
	//??\?????¨?????????
	cin>>N>>K>>T>>U>>V>>L;
	rep(i,N)cin>>D[i];
	rep(i,L)run[i]=false;

	//??????????????????????????????
	while(meter<L){
		if(D[nextCarrot]==meter){
			//???????????????
			carrot++;nextCarrot++;
			
			//??¢?????????????????????????£????
			if(carrot>K){lestRun=T*V;carrot--;}
		}

		//??????????¶????????????£???????£???????????????????
		if(lestRun==0 && carrot>0){carrot--;lestRun+=T*V;}

		//????±???°????????¶????????£???????????°??£?????????????????????
		if(lestRun>0){run[meter]=true;lestRun--;}

		//??????
		meter++;
	}
	//????±???°??£????????¢
	int runDist=0;
	rep(i,L)if(run[i])runDist++;

	//??????
	cout<< setprecision(10)<< (double)runDist/V + (double)(L-runDist)/U <<endl;

	//???????????°
	//rep(i,L)cout<<i<<" : "<<run[i]<<endl;

	//cin>>N;
	return 0;
}