#include<bits/stdc++.h>
using namespace std;
#define pb push_back
int n,m;
double a[1005];
double b[1005];
double fun(double x) /// x is the initial fuel
{
double prev=x;
double curr;
double used;
for(int i=0;i<n;i++)
{
used=1.0*(m+prev)/a[i];
prev=prev-used;
used=1.0*(m+prev)/b[i];
prev=prev-used;
}
if(prev<0)
return 0;
return 1;
}
int main()
{
cin>>n;
cin>>m;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<n;i++)
{
cin>>b[i];
}
double lo=0.0,hi=1000000000.000001,ans=-1,mid;
while(lo<=hi)
{
mid=1.0*(lo+hi)/2;
if(fun(mid))
{
ans=mid;
hi=mid-0.000001;
}
else
{
lo=mid+0.000001;
}
}
if(ans<0)
{
cout<<-1<<endl;
return 0;
}
cout<<fixed<<setprecision(6)<<ans<<endl;
}
CiAjaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIHBiIHB1c2hfYmFjawppbnQgbixtOwpkb3VibGUgYVsxMDA1XTsKZG91YmxlIGJbMTAwNV07CmRvdWJsZSBmdW4oZG91YmxlIHgpIC8vLyB4IGlzIHRoZSBpbml0aWFsIGZ1ZWwKewogICAgZG91YmxlIHByZXY9eDsKICAgIGRvdWJsZSBjdXJyOwogICAgZG91YmxlIHVzZWQ7CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgewogICAgICAgIHVzZWQ9MS4wKihtK3ByZXYpL2FbaV07CiAgICAgICAgcHJldj1wcmV2LXVzZWQ7CiAgICAgICAgdXNlZD0xLjAqKG0rcHJldikvYltpXTsKICAgICAgICBwcmV2PXByZXYtdXNlZDsKICAgIH0KICAgIGlmKHByZXY8MCkKICAgICAgICByZXR1cm4gMDsKICAgIHJldHVybiAxOwoKfQppbnQgbWFpbigpCnsKICAgIGNpbj4+bjsKICAgIGNpbj4+bTsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICB7CiAgICAgICAgY2luPj5hW2ldOwogICAgfQogICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgIHsKICAgICAgICBjaW4+PmJbaV07CiAgICB9CiAgICBkb3VibGUgbG89MC4wLGhpPTEwMDAwMDAwMDAuMDAwMDAxLGFucz0tMSxtaWQ7CiAgICB3aGlsZShsbzw9aGkpCiAgICB7CiAgICAgICAgbWlkPTEuMCoobG8raGkpLzI7CiAgICAgICAgaWYoZnVuKG1pZCkpCiAgICAgICAgewogICAgICAgICAgICBhbnM9bWlkOwogICAgICAgICAgICBoaT1taWQtMC4wMDAwMDE7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGxvPW1pZCswLjAwMDAwMTsKICAgICAgICB9CiAgICB9CiAgICBpZihhbnM8MCkKICAgIHsKICAgICAgICBjb3V0PDwtMTw8ZW5kbDsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGNvdXQ8PGZpeGVkPDxzZXRwcmVjaXNpb24oNik8PGFuczw8ZW5kbDsKfQ==