#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,r,c[1000001];
struct node
{
int a,b;
}a[1000001];
int b[1000001];
bool cmp(node x,node y)
{
return x.b>y.b;
}
bool cmp1(int x,int y)
{
return x>y;
}
signed main()
{
cin>>n>>m>>r;
for(int i=1;i<=n;i++)
cin>>c[i];
sort(c+1,c+1+n,cmp1);
for(int i=1;i<=m;i++)
cin>>a[i].a>>a[i].b;
sort(a+1,a+1+m,cmp);
for(int i=1;i<=r;i++)
cin>>b[i];
sort(b+1,b+1+n,cmp1);
for(int i=1;i<=r;i++)
b[i]+=b[i-1];
int t=1,z=0,sum=0,ans=0;
for(int i=0;i<=n;i++)
{
z+=c[i];
while(t<=m && z>=a[t].a)
{
sum+=a[t].a*a[t].b;
z-=a[t].a;
t++;
}
if(t<=m)
{
sum+=z*a[t].b;
a[t].a-=z;
z=0;
}
ans=max(ans,sum+b[min(n-i,r)]);
}
cout<<ans;
return 0;
}