// Задача "Театр"
// XVI командный чемпионат школьников Санкт-Петербурга по программированию
// Автор задачи: Олег Давыдов
// Автор решения: Олег Давыдов, burunduk3@gmail.com

#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstring>

using namespace std;

typedef long double dbl;
// typedef /*long */double dbl;

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

#define inf 1e100

dbl sqr( dbl x )
{
  return x * x;
}

#define maxn 16
#define maxm 10010
#define maxp 33030

int w, l, n, m, v1, v2;
int x[maxn], y[maxn], a[maxm][maxn];
dbl dist[maxn][maxn];
dbl r[2][2][maxp], d1[maxp][maxn], d2[maxm][2][2];

int main()
{
  freopen("theater.in", "r", stdin);
  freopen("theater.out", "w", stdout);

  scanf("%d%d%d%d%d", &w, &l, &v1, &v2, &n);
  forn (i, n)
    scanf("%d%d", &x[i], &y[i]);
  scanf("%d", &m);
  memset(a, 0, sizeof(a));
  forn (i, m)
  {
    int k, t;
    scanf("%d", &k);
    forn (j, k)
    {
      scanf("%d", &t);
      a[i][t - 1] = 1;
    }
  }

  forn (i, n)
    forn (j, n)
      dist[i][j] = sqrt(sqr(x[i] - x[j]) + sqr(y[i] - y[j]));

  forn (b1, 2)
  {
    forn (i, 1 << n)
      forn (j, n)
        d1[i][j] = inf;
    forn (i, n)
      d1[1 << i][i] = b1 == 0 ? x[i] : (l - x[i]);
    forn (p, 1 << n)
      forn (i, n)
        if ((p & (1 << i)) != 0)
          forn (j, n)
            if ((p & (1 << j)) == 0)
              if (d1[p | (1 << j)][j] > d1[p][i] + dist[i][j])
                d1[p | (1 << j)][j] = d1[p][i] + dist[i][j];
    forn (b2, 2)
    {
      forn (p, 1 << n)
        r[b1][b2][p] = inf;
      r[b1][b2][0] = b1 == b2 ? 0 : l;
      forn (p, 1 << n)
        forn (i, n)
          if ((p & (1 << i)) != 0)
            if (r[b1][b2][p] > d1[p][i] + (b2 == 0 ? x[i] : (l - x[i])))
              r[b1][b2][p] = d1[p][i] + (b2 == 0 ? x[i] : (l - x[i]));
    }
  }

  forn (i, m)
    forn (b1, 2)
      forn (b2, 2)
        d2[i][b1][b2] = inf;

  d2[0][0][1] = 0.0;
  forn (i, m - 1)
  {
    int p1 = 0, p2 = 0;
    forn (j, n)
      if (!a[i][j] && a[i + 1][j])
        p1 |= (1 << j);
      else if (a[i][j] && !a[i + 1][j])
        p2 |= (1 << j);
    forn (b1, 2)
      forn (b2, 2)
        forn (t1, 2)
          forn (t2, 2)
            d2[i + 1][t1][t2] = min(d2[i + 1][t1][t2], d2[i][b1][b2] + max(r[b1][t1][p1] / v1, r[b2][t2][p2] / v2));
  }

  dbl ans = inf;
  forn (b1, 2)
    forn (b2, 2)
      ans = min(ans, d2[m - 1][b1][b2]);

  printf("%.15lf\n", (double)ans);

  return 0;
}
