#define NOFOOTER

#include <cmath>
#include <iostream>
#include "testlib.h"

using namespace std;

#define forn(i, n) for(int i = 0; i < (int)(n); i++)

int n, k;
double x[2001], v, w, t;
int p[2001], m;
bool u[2001];

int main(int argc, char ** argv)
{
	registerTestlibCmd(argc, argv);
	double a = ouf.readReal ();
	double b = ans.readReal ();
	n = inf.readInt();
	forn (i, n)
		x[i+1] = inf.readReal();
	t = inf.readReal ();
	k = inf.readInt ();
	v = inf.readReal ();
	w = inf.readReal ();
	m = ouf.readInt ();
	forn (i, m)
		p[i] = ouf.readInt ();
	int sum = 0;
	forn (i, n)
		sum += (int)x[p[i]+1] - (int)x[p[i]];
	if (sum < k)
		quitf (_wa, "the boy have walked %d, but had to walk at least %d", sum, k);
	double ct = 0;
	forn (i, n+1)
		u[i] = 0;
	forn (i, m)
		u[p[i]] = 1;
	for (int i = 1; i < n; i ++)
		if (u[i])
			ct += (x[i+1] - x[i]) / v;
		else
		{
			double num = ceil ((ct - (x[i] - x[1]) / w) / t - 1e-7);
			ct = (x[i] - x[1]) / w + num * t;
			ct += (x[i+1] - x[i]) / w;
		}
	if (fabs (ct - a) > 1e-5)
		quitf (_wa, "wrong sequence: the time is %.5lf, but %.5lf found", ct, a);
	if (fabs (a - b) < 1e-5)
		quitf (_ok, "%.5lf", a);
	else
		quitf (_wa, "%.5lf expected, but %.5lf found", b, a);	
}
