#include #include #include #include #include #define rep(i,n) for(int i=0; i<(int)(n); i++) using namespace std; using LL = long long; const int Max_Num=1e5; const LL Max_C=1e18; const int Max_AB=1e9; int main(){ LL N, M, C; cin >> N >> M >> C; assert(N>=1 && N<=Max_Num); assert(M>=1 && M<=Max_Num); assert(C>=1 && C<=Max_C); vector A(N), B(M); rep(i,N){ LL a; cin >> a; assert(a>=1 && a<=Max_AB); A[i]=a; } rep(i,M){ LL b; cin >> b; assert(b>=1 && b<=Max_AB); B[i]=b; } sort(B.begin(),B.end()); double ans=0; rep(i,N){ LL a=A[i]; int left=-1, right=B.size(); while(right - left > 1){ int mid = left + (right - left)/2; if(a * B[mid] > C) right = mid; else left = mid; } ans += B.size() - right; } cout << setprecision(10) << ans/(N*M) << endl; return 0; }