text: //Boleyn Su's Template for Codeforces
  #include <iostream>
  #include <fstream>
  #include <sstream>
  #include <string>
  #include <vector>
  #include <list>
  #include <set>
  #include <map>
  #include <queue>
  #include <deque>
  #include <algorithm>
  #include <functional>
  #include <utility>
  #include <cstdio>
  #include <cstdlib>
  #include <cstring>
  #include <cmath>
  #include <ctime>
  #include <climits>
  using namespace std;
  
  #define lp for(;;)
  #define rep(i,n) for (int i=0;i<(n);++i)
  #define ft(i,a,b) for (int i=(a);i<=(b);++i)
  #define fdt(i,a,b) for (int i=(a);i>=b;--i)
  #define foreach(e,set,type) for (type::iterator e=(set).begin();e!=(set).end();++e)
  #define whl while
  #define rtn return
  #define fl(x,y) memset((x),char(y),sizeof(x))
  #define clr(x) fl(x,0)
  #define sqr(x) (x)*(x)
  #define lb(x) (x)&(-(x))
  #define pb push_back
  #define mp make_pair
  #define x first
  #define y second
  #define sz(x) ((int)(x).size())
  #define len(x) ((int)(x).length())
  #define all(x) (x).begin(),(x).end()
  #define srt(x) sort(all(x))
  #define vec vector
  #define pr pair
  #define que queue
  #define prq priority_queue
  #define itr iterator
  #define tr true
  #define fls false
  #define prt(x) cout<<#x<<"="<<(x)<<endl
  #define asrtWA(s) do if(!(s))exit(0);whl(fls)
  #define asrtTLE(s) do if(!(s))whl(tr);whl(fls)
  #define asrtRE(s) do if(!(s))*(int*)0=0;whl(fls)
  
  typedef long long int lli;
  typedef double db;
  typedef char* cstr;
  typedef string str;
  typedef vec<int> vi;
  typedef vec<vi> vvi;
  typedef vec<bool> vb;
  typedef vec<vb> vvb;
  typedef vec<string> vs;
  typedef pr<int, int> pii;
  typedef pr<str,int> psi;
  typedef map<int,int> mii;
  typedef map<str,int> msi;
  typedef map<char,int> mci;
  typedef set<int> si;
  typedef set<str> ss;
  typedef que<int> qi;
  typedef prq<int> pqi;
  
  const int oo=(~0u)>>1;
  const lli ooll=(~0ull)>>1;
  const db inf=1e100;
  const db eps=1e-8;
  const db pi=acos(-1.0);
  
  template<typename type>inline bool cmax(type& a,const type& b){return a<b?a=b,true:false;}
  template<typename type>inline bool cmin(type& a,const type& b){return a>b?a=b,true:false;}
  
  int main()
  {
      int n;
      cin>>n;
      db r1=0;
      rep(i,n){db x;cin>>x;cmax(r1,x);}
      cin>>n;
      vec<db> y;
      rep(i,n){db x;cin>>x;y.pb(x);}
      cin>>n;
      db p2=inf;
      rep(i,n){db x;cin>>x;cmin(p2,x);}
      db A,B;
      cin>>A>>B;
      db r2=0;
      foreach(i,y,vec<db>)
      {
          db x=sqrt((B*(*i)*sqr(r1))/((*i)*B+p2*A));
          if (x<r1) cmax(r2,x);
      }
      printf("%.50f\n",r2);
  }
  
  