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

import java.util.Locale;
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

class theater_od_java {
  static final double inf = 1e100;

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

  void run() throws IOException {
    Locale.setDefault(Locale.US);
    Scanner in = new Scanner(new File("theater.in"));
    PrintWriter out = new PrintWriter("theater.out");

    int ry = in.nextInt();
    int rx = in.nextInt();
    int v1 = in.nextInt();
    int v2 = in.nextInt();
    int n = in.nextInt();

    int[] x = new int[n];
    int[] y = new int[n];
    for (int i = 0; i < n; i++) {
      x[i] = in.nextInt();
      y[i] = in.nextInt();
    }

    int m = in.nextInt();
    int[][] a = new int[m][n];
    for (int i = 0; i < m; i++)
      for (int j = 0; j < n; j++)
        a[i][j] = 0;
    for (int i = 0; i < m; i++) {
      int k = in.nextInt();
      for (int j = 0; j < k; j++) {
        int t = in.nextInt();
        a[i][t - 1] = 1;
      }
    }

    double[][] d1 = new double[(1 << n) + 10][n];
    double[][][] r = new double[2][2][(1 << n) + 10];
    for (int b1 = 0; b1 < 2; b1++) {
      for (int i = 0; i < (1 << n); i++)
        for (int j = 0; j < n; j++)
          d1[i][j] = inf;
      for (int i = 0; i < n; i++)
        d1[1 << i][i] = b1 == 0 ? x[i] : (rx - x[i]);
      for (int p = 0; p < (1 << n); p++)
        for (int i = 0; i < n; i++)
          for (int j = 0; j < n; j++)
            if ((p & (1 << i)) != 0 && (p & (1 << j)) == 0)
              d1[p | (1 << j)][j] = Math.min(d1[p | (1 << j)][j],
                                             d1[p][i] + Math.sqrt(sqr(x[i] - x[j]) + sqr(y[i] - y[j])));
      for (int b2 = 0; b2 < 2; b2++) {
        for (int p = 0; p < (1 << n); p++)
          r[b1][b2][p] = inf;
        r[b1][b2][0] = b1 == b2 ? 0 : rx;
        for (int p = 0; p < (1 << n); p++)
          for (int i = 0; i < n; i++)
            if ((p & (1 << i)) != 0)
              r[b1][b2][p] = Math.min(r[b1][b2][p], d1[p][i] + (b2 == 0 ? x[i] : (rx - x[i])));
      }
    }

    double[][][] d2 = new double[m][2][2];
    for (int i = 0; i < m; i++)
      for (int b1 = 0; b1 < 2; b1++)
        for (int b2 = 0; b2 < 2; b2++)
          d2[i][b1][b2] = inf;

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

    double ans = inf;
    for (int b1 = 0; b1 < 2; b1++)
      for (int b2 = 0; b2 < 2; b2++)
        ans = Math.min(ans, d2[m - 1][b1][b2]);

    out.format("%.15f\n", ans);

    out.close();
  }

  public static void main(String[] args) throws IOException {
    new theater_od_java().run();
  }
}
