#include <bits/stdc++.h>
using namespace std;
long double fans;
long long ans;
int n, m, w;
int a[500010], b[500010], c[500010];
long double num[500010];
int id[500010];
inline int read() {
  int ans = 0;
  char ch = getchar();
  while (ch < '0' || ch > '9') ch = getchar();
  while (ch >= '0' && ch <= '9')
    ans = (ans << 1) + (ans << 3) + ch - '0', ch = getchar();
  return ans;
}
inline int cmp(int x, int y) { return num[x] < num[y]; }
int main() {
  scanf("%d%d%d", &n, &m, &w);
  for (int i = 1; i <= m; i++) a[i] = read();
  for (int i = 1; i <= m; i++) b[i] = read();
  for (int i = 1; i <= m; i++) c[i] = read();
  for (int i = 0; i < n; i++) {
    for (int j = 1; j <= m; j++) {
      num[j] = (long double)(b[j] - c[j] * i) / a[j];
      id[j] = j;
    }
    int l = 1, r = m;
    long long tot = w;
    while (l < r) {
      int mid = (l + r) >> 1;
      nth_element(id + l, id + mid, id + r + 1, cmp);
      long long sum = 0;
      long long cnt = 0;
      for (int j = l; j <= mid; j++) {
        sum += b[id[j]] - c[id[j]] * i;
        cnt += a[id[j]];
      }
      if (tot >= cnt) {
        tot -= cnt;
        ans += sum;
        l = mid + 1;
      } else
        r = mid;
    }
    fans += num[id[l]] * tot;
    ans += (long long)fans;
    fans -= (long long)fans;
  }
  printf("%lld.", ans);
  for (int i = 1; i <= 10; i++)
    fans *= 10, printf("%lld", (long long)fans), fans -= (long long)fans;
}
