/*
寻找单调性 发现W越大,Y越小
可以二分W。则问题转化为求 abs(f(W)-S)的最小值。
如何快速求f(W)
发现可以前缀和预处理,两个前缀和,一个记录大于W 的Σvi 一个记录大于W 的个数。
嗯,ans初始值往死大死大里设,不然就莫名其妙WA WA WA
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#define N 200007
#define ll long long
using namespace std;
ll n,m,k,ans,cnt,S,Y;
ll w[N],v[N],L[N],R[N];
ll sum[N],sum2[N];
inline ll read()
{
ll x=0,f=1;char c=getchar();
while(c>‘9‘||c<‘0‘){if(c==‘-‘)f=-1;c=getchar();}
while(c>=‘0‘&&c<=‘9‘){x=x*10+c-‘0‘;c=getchar();}
return x*f;
}
int main()
{
n=read();m=read();S=read();
for(ll i=1;i<=n;i++) w[i]=read(),v[i]=read(),k=max(k,w[i]);
for(ll i=1;i<=m;i++) L[i]=read(),R[i]=read();
ans=999999999999999999;
ll l=0,r=k+1,mid;
while(l<=r)
{
mid=l+r>>1;Y=0;
for(ll i=1;i<=n;i++)
{
if(w[i]>=mid) sum[i]=sum[i-1]+v[i],sum2[i]=sum2[i-1]+1;
else sum[i]=sum[i-1],sum2[i]=sum2[i-1];
}
for(ll i=1;i<=m;i++)
Y+=(sum[R[i]]-sum[L[i]-1])*(sum2[R[i]]-sum2[L[i]-1]);
if(Y-S>=0) ans=min(ans,abs(Y-S)),l=mid+1;
else ans=min(ans,abs(Y-S)),r=mid-1;
}
printf("%lld\n",ans);
return 0;
}