#include <bits/stdc++.h>
using namespace std;
inline int read() {
  int res = 0;
  int neg;
  while (true) {
    char ch = getchar();
    if (ch >= '0' && ch <= '9' || ch == '-') {
      if (ch == '-')
        neg = -1;
      else
        neg = 1, res = ch - '0';
      break;
    }
  }
  while (true) {
    char ch = getchar();
    if (ch >= '0' && ch <= '9')
      res *= 10, res += ch - '0';
    else
      break;
  }
  return res * neg;
}
const int maxn = 500020;
const int maxk = 100020;
const int maxx = 100000;
const int maxm = 1000020;
const int MOd = 1e7;
int a, s, ar[maxn];
int main() {
  int p1 = 1e9, r1 = 0, p2 = 1e9;
  scanf("%d", &a);
  for (int i = 1, k; i <= a; i++) {
    scanf("%d", &k);
    r1 = max(r1, (k));
  }
  scanf("%d", &a);
  int H = a;
  for (int i = 1, k; i <= a; i++) {
    scanf("%d", &k);
    p1 = min(p1, (k));
    ar[i] = k;
  }
  scanf("%d", &a);
  for (int i = 1, k; i <= a; i++) {
    scanf("%d", &k);
    p2 = min(p2, (k));
  }
  int A, B;
  scanf("%d %d", &A, &B);
  printf("");
  double ans = 0;
  for (int i = 1; i <= H; i++) {
    p1 = ar[i];
    ans = max(ans, ((double)sqrt((double)B * p1 * r1 * r1 /
                                 ((double)B * p1 + A * p2))));
  }
  printf("%.12lf\n", ans);
  return 0;
}
