#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, m, k, x, s, rv;
  cin >> n >> m >> k;
  cin >> x >> s;
  long long a[m], b[m], c[k], d[k];
  map<long long, long long> dict;
  map<long long, long long>::iterator it;
  for (int i = 0; i < m; i++) cin >> a[i];
  for (int i = 0; i < m; i++) cin >> b[i];
  for (int i = 0; i < k; i++) cin >> c[i];
  for (int i = 0; i < k; i++) cin >> d[i];
  for (int i = 0; i < k; i++) dict[d[i]] = max(dict[d[i]], c[i]);
  long long ans = x * n, out = 0;
  it = dict.upper_bound(s);
  if (it == dict.begin())
    out = 0;
  else {
    it--;
    if (it == dict.end())
      out = 0;
    else
      out = it->second;
  }
  ans = min(ans, (n - out) * x);
  for (int i = 0; i < m; i++) {
    if (b[i] <= s) {
      rv = s - b[i];
      it = dict.upper_bound(rv);
      if (it == dict.begin())
        out = 0;
      else {
        it--;
        if (it->first > rv || it == dict.end())
          out = 0;
        else
          out = it->second;
      }
      out = n - out;
      rv = out * a[i];
      ans = min(rv, ans);
    }
  }
  printf("%lld\n", ans);
  return 0;
}
