#include<bits/stdc++.h>
using namespace std;
const int mx=1e5+5;
int n,m,x,p[mx],c[mx],cnt1,cnt2,ans;
struct node1{int a,b;}y[mx];
struct node2{int a,b;}f[mx];
struct node3{int a,b;}g[mx];
struct node4{int p,c;}id[mx];
bool cmp1(node4 a,node4 b){return a.p<b.p;}
bool cmp2(node2 a,node2 b){return (a.a-a.b)>(b.a-b.b);}
bool cmp3(node3 a,node3 b){return (a.b-a.a)>(b.b-b.a);}
int main(){
cin>>n>>m>>x;
for(int i=1;i<=n;i++){
cin>>id[i].p>>id[i].c;
}
sort(id+1,id+n+1,cmp1);
for(int i=1;i<=m;i++){
cin>>y[i].a>>y[i].b;
if(y[i].a>=y[i].b)f[++cnt1].a=y[i].a,f[cnt1].b=y[i].b;
else g[++cnt2].a=y[i].a,g[cnt2].b=y[i].b;
}
sort(f+1,f+cnt1+1,cmp2);
sort(g+1,g+cnt2+1,cmp3);
for(int i=1,j=1;i<=cnt1,j<=n;i++){
if(i==cnt1+1)break;
if(id[j].c==0)j++;
id[j].c--;
ans+=2*(f[i].a*id[j].p+f[i].b*(x-id[j].p));
}
for(int i=1,j=n;i<=cnt2,j>=1;i++){
if(i==cnt2+1)break;
if(id[j].c==0)j--;
id[j].c--;
ans+=2*(g[i].a*id[j].p+g[i].b*(x-id[j].p));
}
cout<<ans;
return 0;
}