#include <bits/stdc++.h>
#define int long long
using namespace std;
const int MAXN = 2e5 + 5;
int n, m, s, w[MAXN], v[MAXN];
int _max = INT_MIN, _min = INT_MAX, l, r;
int presumv[MAXN], presum[MAXN];
int L[MAXN], R[MAXN];
int sum = 0, ans = INT_MAX;
signed main(){
cin >> n >> m >> s;
for(int i = 1; i <= n; i ++){
cin >> w[i] >> v[i];
_max = max(_max, w[i]);
_min = min(_min, w[i]);
}
for(int i = 1; i <= m; i ++){
cin >> L[i] >> R[i];
}
int l = _min, r = _max;
while(l <= r){
int mid = l + ((r - l) >> 1);
sum = 0;
memset(presumv, 0, sizeof(presumv));
memset(presum, 0, sizeof(presum));
for(int i = 1; i <= n; i ++){
if(w[i] >= mid){
presumv[i] = presumv[i - 1] + v[i];
presum[i] = presum[i - 1] + 1;
}
else{
presumv[i] = presumv[i - 1];
presum[i] = presum[i - 1];
}
}
for(int i = 1; i <= m; i ++){
sum += ((presum[R[i]] - presum[L[i] - 1]) * (presumv[R[i]] - presumv[L[i] - 1]));
}
if(sum > s) l = mid + 1;
else if(sum == s){
cout << 0 << endl;
return 0;
}
else r = mid - 1;
if(abs(sum - s) < ans) ans = abs(sum - s);
}
cout << ans << endl;
return 0;
}