#include using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; int main() { cin.tie(nullptr)->sync_with_stdio(false); ll n, m, c; cin >> n >> m >> c; vector a(n), b(m); rep(i, n) cin >> a[i]; rep(i, m) cin >> b[i]; sort(a.begin(), a.end()); sort(b.begin(), b.end()); ll ans = 0; rep(i, n) { ans += b.end() - upper_bound(b.begin(), b.end(), c / a[i]); } // cout << ans << ' ' << n * m << '\n'; ll g = gcd(ans, n * m); cout << fixed << setprecision(15) << (double) (ans / g) / (double) (n * m / g) << '\n'; return 0; }