#include <bits/stdc++.h>
using namespace std;
vector <int> c;
bool f(double p, int m)
{
for (auto x : c)
p -= (m + p) / x;
if (p < 0) return 0;
return 1;
}
int main()
{
int n, m;
cin >> n >> m;
vector <int> a(n);
vector <int> b(n);
for (int i = 0; i < n; ++i) cin >> a[i];
for (int i = 0; i < n; ++i) cin >> b[i];
c.resize(2 * n);
for (int i = 0; i < n - 1; ++i){
c[2 * i] = a[i];
c[2 * i + 1] = b[i + 1];
}
c[2 * n - 2] = a[n - 1];
c[2 * n - 1] = b[0];
if (find(c.begin(), c.end(), 1) != c.end()){
cout << -1;
}
else {
double left = 0, right = 2e9, eps = 1e-8, mid;
while (abs(right - left) > eps){
mid = (right + left) / 2;
if (f(mid, m)) right = mid;
else left = mid;
}
if (left <= 1e9) printf("%.7f", left);
else cout << -1;
}
return 0;
}
151A - Soft Drinking | 1352A - Sum of Round Numbers |
281A - Word Capitalization | 1646A - Square Counting |
266A - Stones on the Table | 61A - Ultra-Fast Mathematician |
148A - Insomnia cure | 1650A - Deletions of Two Adjacent Letters |
1512A - Spy Detected | 282A - Bit++ |
69A - Young Physicist | 1651A - Playoff |
734A - Anton and Danik | 1300B - Assigning to Classes |
1647A - Madoka and Math Dad | 710A - King Moves |
1131A - Sea Battle | 118A - String Task |
236A - Boy or Girl | 271A - Beautiful Year |
520B - Two Buttons | 231A - Team |
479C - Exams | 1030A - In Search of an Easy Problem |
158A - Next Round | 71A - Way Too Long Words |
160A - Twins | 1A - Theatre Square |
1614B - Divan and a New Project | 791A - Bear and Big Brother |