import java.util.Scanner;
public class Main {
public static int n,m;
public static long s;
public static int[] wList;
public static int[] vList;
public static int[] lList;
public static int[] rList;
public static long[] wSumList;
public static long[] vSumList;
public static Long Y;
public static long calc(int w){
wSumList = new long[n+1];
vSumList = new long[n+1];
long y = 0;
int l;
int r;
long wCount;
long vTotal;
for (int i=0;i<n;i++){
if (wList[i]>=w){
wSumList[i+1] = wSumList[i]+1;
vSumList[i+1] = vSumList[i]+vList[i];
}else {
wSumList[i+1] = wSumList[i];
vSumList[i+1] = vSumList[i];
}
}
for (int i=0;i<m;i++){
l = lList[i];
r = rList[i];
wCount = wSumList[r]-wSumList[l-1];
vTotal = vSumList[r]-vSumList[l-1];
y+= wCount * vTotal;
}
return y;
}
public static void bsearch(int left, int right){
while (left<=right){
int mid = (left+right)/2;
long y = calc(mid);
if (Y==null){
Y = y;
}
if (Math.abs(y-s)<=Math.abs(Y-s)){
Y = y;
}
if(y<s)
right = mid-1;
else
left = mid+1;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
s = sc.nextLong();
wList = new int[n];
vList = new int[n];
lList = new int[m];
rList = new int[m];
for (int i=0;i<n;i++){
wList[i] = sc.nextInt();
vList[i] = sc.nextInt();
}
for (int i=0;i<m;i++){
lList[i] = sc.nextInt();
rList[i] = sc.nextInt();
}
int minW = 1000000;
int maxW = 0;
for (int i=0;i<n;i++){
minW = Math.min(minW,wList[i]);
maxW = Math.max(maxW,wList[i]);
}
bsearch(minW, maxW);
System.out.println(Math.abs(Y-s));
}
}