#include <bits/stdc++.h>
long long n, m, k, x, s, a[200007], b[200007], c[200007], d[200007];
int upper_bound(long long mana) {
  int l = 0, r = k;
  while (r - l > 1) {
    int m = (l + r) >> 1;
    if (d[m] <= mana)
      l = m;
    else
      r = m;
  }
  return l;
}
int main() {
  scanf("%lld%lld%lld", &n, &m, &k);
  scanf("%lld%lld", &x, &s);
  for (int i = 0; i < m; i++) scanf("%lld", a + i);
  for (int i = 0; i < m; i++) scanf("%lld", b + i);
  for (int i = 0; i < k; i++) scanf("%lld", c + i);
  for (int i = 0; i < k; i++) scanf("%lld", d + i);
  long long ans = n * x;
  if (s >= d[0]) ans = std::min(ans, x * std::max(0ll, n - c[upper_bound(s)]));
  for (int i = 0; i < m; i++) {
    long long mana = s - b[i];
    if (mana < 0) continue;
    if (mana < d[0]) {
      ans = std::min(ans, a[i] * n);
      continue;
    }
    long long t = upper_bound(mana);
    ans = std::min(ans, a[i] * std::max(0ll, n - c[t]));
  }
  printf("%lld\n", ans);
  return 0;
}
