#include <bits/stdc++.h>
using namespace std;
struct T {
  long long a, b;
  T() { a = b = 0; }
  T(long long aa, long long bb) : a(aa), b(bb) {}
  bool operator<(const T& tt) const { return b < tt.b; }
} t[200005];
long long c[200005], d[200005];
int n, m, k, x, s;
void solve() {
  long long ans = 1LL * x * n;
  c[0] = d[0] = 0;
  int i, j;
  for (j = k; j; --j)
    if (d[j] <= s) break;
  if (j) ans = 1LL * x * (n - c[j]);
  for (i = 1; i <= m; ++i) {
    while (j && d[j] + t[i].b > s) --j;
    if (t[i].b + d[j] > s) break;
    ans = min(ans, t[i].a * (n - c[j]));
  }
  printf("%I64d\n", ans);
}
int main() {
  scanf("%d%d%d", &n, &m, &k);
  scanf("%d%d", &x, &s);
  for (int i = 1; i <= m; ++i) scanf("%I64d", &t[i].a);
  for (int i = 1; i <= m; ++i) scanf("%I64d", &t[i].b);
  for (int i = 1; i <= k; ++i) scanf("%I64d", c + i);
  for (int i = 1; i <= k; ++i) scanf("%I64d", d + i);
  sort(t + 1, t + 1 + m);
  solve();
  return 0;
}
