#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 1e6+10;
int n, m, s;
int w[maxn], v[maxn], l[maxn], r[maxn];
int pre_w[maxn], pre_v[maxn];
int check(int x){
memset(pre_w,0,sizeof(pre_w));
memset(pre_v,0,sizeof(pre_v));
for(int i=1; i<=n; i++){
pre_w[i] = pre_w[i-1] + (w[i]>=x ? w[i] : 0);
pre_v[i] = pre_v[i-1] + (w[i]>=x ? v[i] : 0);
}
int res = 0;
for(int i=1; i<=m; i++){
res += (pre_w[r[i]] - pre_w[l[i]-1]) * (pre_v[r[i]] - pre_v[l[i]-1]);
}
if(res>=s) return 1;
else return 0;
}
void run(){
cin >> n >> m >> s;
int minn = 0x3f3f3f3f;
int maxx = 0;
for(int i=1; i<=n; i++){
cin >> w[i] >> v[i];
}
for(int i=1; i<=m; i++){
cin >> l[i] >> r[i];
}
int left = 0, right = 1e18;
while(left<right){
int mid = left + (right-left)/2;
if(check(mid)){
left = mid+1;
}
else{
right = mid;
}
}
cout << abs(s-left+1) << "\n";
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
int T = 1;
while(T--){
run();
}
return 0;
}