#include <iostream>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;
#include <vector>
#include <iostream>
long long tms=0,ans=0;
int n, m, x;
pair<int,int> station[100006];
int cara[100006];
int carb[100006];
int aweight[100006];
int bweight[100006];
bool bmp(int a, int b) { return a > b; }
bool q(pair<int, int> a, pair<int, int> b) { return a.first < b.first; }
int main() {
cin >> n >> m >> x;
for (int i = 0; i < n; i++)
cin >> station[i].first >> station[i].second;
for (int i = 0; i < m; i++) {
cin >> cara[i] >> carb[i];
if (cara[i] > carb[i])
aweight[i] = cara[i] - carb[i];
else
bweight[i] = carb[i] - cara[i];
tms += min(cara[i], carb[i]);
}
ans += tms * x; int a = 0, b = 0, af = 1, bf = 1;
sort(aweight, aweight + m, bmp);
sort(bweight, bweight + m, bmp);
sort(station, station + n, q);
for (int i = 0; i < n && af; i++) {
for(; station[i].second ;station[i].second--)
if (aweight[a])ans += aweight[a++] * station[i].first;
else { af = 0; break; };
if (aweight[a] == 0)break;
}
for (int i = n - 1; i >= 0 && bf; i--)
{
for (; station[i].second; station[i].second--)
if (bweight[b])ans += bweight[b++] * (x - station[i].first);
else { bf = 0; break; }
if (bweight[b] == 0)break;
}
cout << 2 * ans;
}