#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
const int N = 100005, I = 18446744073709551615;
int A, B, C;
int n, m, mxt, mnt = 2e9;
int t[N], b[N], Ts[N], Bs[N];
int ans = I;
inline bool cmp(int x,int y)
{
return x > y;
}
template<class io>
inline void re(io &x)
{
char c=getchar();x=0;
while(c<48 || c>57)c=getchar();
while(c>47 && c<58)x=(x<<3)+(x<<1)+(c&15),c=getchar();
return;
}
template<class io>
void wr(io x)
{
io d=x/10;if(d)wr(d);
putchar(x-(d<<3)-(d<<1)|48);
return;
}
signed main()
{
re(A); re(B); re(C);
re(n); re(m);
for(int i=1;i<=n;++i)
{
re(t[i]);
mnt = min(mnt, t[i]);
}
sort(t + 1, t + n + 1);
for(int i=1;i<=n;++i)
{
Ts[i] = Ts[i - 1] + t[i];
}
for(int i=1;i<=m;++i)
{
re(b[i]);
}
sort(b + 1, b + m + 1);
for(int i=1;i<=m;++i)
{
Bs[i] = Bs[i - 1] + b[i];
}
for(int T = mnt; T <= N ; ++T)
{
int id = lower_bound( b+1, b+m+1, T ) - b - 1;
int x = id * T - Bs[id];
int y = Bs[m] - Bs[id] - (m - id) * T;
int P;
if(A >= B)
{
P = y * B;
}
else
{
if(y > x)
{
P = x * A + (y - x) * B;
}
else
{
P = x * A;
}
}
int stud_id = lower_bound( t+1, t+n+1, T ) - t - 1;
P += ( stud_id * T - Ts[stud_id] ) * C;
ans = min(ans, P);
}
wr(ans);
return 0;
}