#include <bits/stdc++.h>
using namespace std;
pair<long long, long long> A[200005];
pair<long long, long long> B[200005];
long long G[200005];
long long m, k;
long long n, s;
int dp[200005];
int f(int pos) {
  if (pos == m) return -2;
  if (dp[pos] != -1) {
    return dp[pos];
  }
  int i = f(pos + 1) + 1;
  if (i == -1) i++;
  while (i < k) {
    if (A[pos].first + B[i].second <= s)
      i++;
    else {
      i--;
      break;
    }
  }
  if (i == k) i = k - 1;
  if (i == -1) i = -2;
  dp[pos] = i;
  return i;
}
int main() {
  long long x;
  cin >> n >> m >> k >> x >> s;
  memset(dp, -1, sizeof dp);
  for (int i = 0; i < m; i++) {
    cin >> G[i];
  }
  long long y;
  int o = 0;
  for (int i = 0; i < m; i++) {
    cin >> y;
    if (y <= s)
      A[i] = pair<long long, long long>(y, G[o]);
    else {
      m--;
      i--;
    }
    o++;
  }
  for (int i = 0; i < k; i++) {
    cin >> G[i];
  }
  o = 0;
  for (int i = 0; i < k; i++) {
    cin >> y;
    if (y <= s && ((o > 0 && G[o - 1] < G[o]) || o == 0))
      B[i] = pair<long long, long long>(G[o], y);
    else {
      k--;
      i--;
    }
    o++;
  }
  sort(A, A + m);
  sort(B, B + k);
  priority_queue<pair<int, int> > C;
  for (int i = 0; i < m; i++) {
    C.push(pair<int, int>(f(i), i));
  }
  long long mint = n * x;
  long long minD;
  pair<int, int> h, g;
  if (!C.empty()) {
    h = C.top();
    C.pop();
    minD = A[h.second].second;
    while (!C.empty()) {
      g = C.top();
      C.pop();
      if (h.first == g.first) {
        minD = min(minD, min(A[h.second].second, A[g.second].second));
      } else {
        mint = min(mint, (n - B[h.first].first) * minD);
        minD = A[g.second].second;
      }
      h = pair<int, int>(g.first, g.second);
    }
    if (h.first != -2)
      mint = min(mint, (n - B[h.first].first) * minD);
    else
      mint = min(mint, n * minD);
  }
  int j = -1;
  for (int i = k - 1; i >= 0; i--) {
    if (B[i].second <= s) {
      j = i;
      break;
    }
  }
  if (j != -1) {
    mint = min(mint, (n - B[j].first) * x);
  }
  cout << mint << endl;
  return 0;
}
