#include <bits/stdc++.h>
using namespace std;
int N, M, K;
long long A[200005], B[200005], C[200005], D[200005];
long long solve(long long points, long long item, long long unit) {
  if (points < 0) return (long long)1e18 * 4 + 15;
  if (item <= 0) return 0;
  int ptr = upper_bound(D + 1, D + 1 + K, points) - D - 1;
  points -= D[ptr];
  item -= C[ptr];
  if (item <= 0) return 0;
  return item * unit;
}
int main() {
  cin >> N >> M >> K;
  long long x, s;
  cin >> x >> s;
  for (int i = 1; i <= M; i++) cin >> A[i];
  for (int i = 1; i <= M; i++) cin >> B[i];
  for (int i = 1; i <= K; i++) cin >> C[i];
  for (int i = 1; i <= K; i++) cin >> D[i];
  long long ans = solve(s, N, x);
  for (int i = 1; i <= M; i++) ans = min(ans, solve(s - B[i], N, A[i]));
  cout << ans << endl;
  return 0;
}
