#include <bits/stdc++.h>
using namespace std;
unsigned long long int pwr(unsigned long long int a, unsigned long long int b,
                           unsigned long long int mod) {
  a %= mod;
  if (a < 0) a += mod;
  unsigned long long int ans = 1;
  while (b) {
    if (b & 1) ans = (ans * a) % mod;
    a = (a * a) % mod;
    b /= 2;
  }
  return ans;
}
int main() {
  unsigned long long int n, m, k;
  cin >> n >> m >> k;
  unsigned long long int x, s;
  cin >> x >> s;
  vector<vector<unsigned long long int> > spell1(
      2, vector<unsigned long long int>(m, 0));
  vector<vector<unsigned long long int> > spell2(
      2, vector<unsigned long long int>(k, 0));
  for (int i = 0; i < m; i++) cin >> spell1[0][i];
  for (int i = 0; i < m; i++) cin >> spell1[1][i];
  for (int i = 0; i < k; i++) cin >> spell2[0][i];
  for (int i = 0; i < k; i++) cin >> spell2[1][i];
  vector<vector<unsigned long long int> > ans(
      2, vector<unsigned long long int>(m + 1, 0));
  for (int i = 0; i < m; i++) {
    if (spell1[1][i] <= s) {
      ans[0][i] = spell1[0][i];
      ans[1][i] = s - spell1[1][i];
    } else {
      ans[0][i] = x;
      ans[1][i] = s;
    }
  }
  ans[0][m] = x;
  ans[1][m] = s;
  vector<unsigned long long int> res(m + 1, 0);
  for (int i = 0; i <= m; i++) {
    auto it = upper_bound(spell2[1].begin(), spell2[1].end(), ans[1][i]);
    int index = it - spell2[1].begin();
    if (index == 0)
      res[i] = n * ans[0][i];
    else
      res[i] = (n - spell2[0][index - 1]) * ans[0][i];
  }
  unsigned long long int timer = n * x;
  for (int i = 0; i <= m; i++) timer = min(timer, res[i]);
  cout << timer << endl;
}
