#include<bits/stdc++.h>
using namespace std;
const long long N=2e6+100;
long long n,m,s,q[N][3],z[N][3],ans,minn=LONG_LONG_MAX,y;
struct ks{
long long w,v;
}a[100001];
long long check(long long mid,long long n,long long m){
long long sum=0;
for(int i=1;i<=n;i++){
if(a[i].w>=mid){
z[i][0]++;
z[i][1]+=a[i].v;
}
else {
z[i][0]=z[i-1][0];
z[i][1]=z[i-1][1];
}
}
for(int i=1;i<=m;i++){
sum+=(z[q[i][0]][1]-z[q[i][0]-1][0])*(z[q[i][1]][1]-z[q[i][1]-1][0]);
}
return sum;
}
int main(){
cin>>n>>m>>s;
for(int i=1;i<=n;i++){
cin>>a[i].w>>a[i].v;
}
for(int i=1;i<=m;i++){
cin>>q[i][0]>>q[i][1];
}
int l=0,r=1000001,mid;
while(l<=r){
mid=l+r>>1;
y=check(mid,n,m);
ans=y-s;
if(ans==0){
cout<<0;
return 0;
}
if(check(mid,n,m)>0)l=mid+1;
else r=mid-1;
minn=min(abs(ans),minn);
}
cout<<minn;
}