#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,s,l[200010],r[200010],cnt[200010],w[200010];
long long sum[200010];
pair<int,int>a[200010];
void pre(int W)
{
sum[0] = cnt[0] = 0;
if(a[0].first >= W)
{
sum[0] = a[0].second;
cnt[0]++;
}
for(int i = 1;i < n;i++)
{
sum[i] = sum[i-1];
cnt[i] = cnt[i-1];
if(a[i].first >= W)
{
sum[i] += a[i].second;
cnt[i]++;
}
}
}
long long cn(int W)
{
long long su = 0;
pre(W);
for(int i = 0;i < n;i++)
{
su += (cnt[r[i]]-cnt[l[i]-1])*(sum[r[i]]-sum[l[i]-1]);
}
return su;
}
void PR()
{
for(int i = 0;i < n;i++)
{
}
}
int main()
{
scanf("%d %d %d",&n,&m,&s);
for(int i = 0;i < n;i++)
{
scanf("%d %d",&a[i].first,&a[i].second);
}
for(int i = 0;i < m;i++)
{
scanf("%d %d",&l[i],&r[i]);
l[i]--,r[i]--;
}
int l = 0,r = 1E6;
long long anx = 0x3f3f3f3f3f3f3f3,anm = -0x3f;
while(l <= r)
{
int m = (l+r)>>1;
long long t = cn(m);
if(t > s)
{
l = m+1;
anx = min(t,anx);
}
else if(t == s)
{
anm=anx=s;
break;
}
else
{
anm = max(anm,t);
r = m-1;
}
}
long long ans;
if((s-anm) > (anx-s))
{
ans = anx-s;
}
else
{
ans = s-anm;
}
cout <<ans;
return 0;
}