#include <bits/stdc++.h>
using namespace std;
long long n, m, k, x, s, tmp = -1, i, j, min1 = -1, sum;
pair<long long, long long> a[300000], b[300000];
long long b_search(pair<long long, long long> a[], int s, int f, int val) {
  if (f - s <= 1) {
    if (a[f].second == val) return f;
    return s;
  }
  long long m = (s + f) / 2;
  if (a[m].second > val) return b_search(a, s, m, val);
  return b_search(a, m, f, val);
}
int main() {
  cin >> n >> m >> k;
  cin >> x >> s;
  for (i = 0; i < m; i++) {
    cin >> a[i].first;
  }
  for (i = 0; i < m; i++) {
    cin >> a[i].second;
  }
  for (i = 0; i < k; i++) {
    cin >> b[i].first;
  }
  for (i = 0; i < k; i++) {
    cin >> b[i].second;
  }
  for (i = 0; i < m; i++) {
    sum = s - a[i].second;
    long long res = b_search(b, 0, k, sum);
    if (b[res].second <= sum)
      tmp = (n - b[res].first) * a[i].first;
    else if (sum >= 0)
      tmp = n * a[i].first;
    if (tmp < min1 || min1 == -1 && tmp != -1) min1 = tmp;
  }
  for (i = 0; i < k; i++) {
    sum = s - b[i].second;
    if (sum >= 0) {
      tmp = (n - b[i].first) * x;
      if (tmp < 0) tmp = 0;
      if (tmp < min1 || min1 == -1 && tmp != -1) min1 = tmp;
    }
  }
  if (min1 == -1) min1 = n * x;
  cout << min1 << endl;
}
