1 1 2 2
1000000000 1000000000
1
 1 1 1000000000 1000000000
100 1000000000
1
 1 1 10 18
5 6
5
 2 1 1000000000 2000000000
111 999999999
101 999999998
1
 4 13 400 600
13 30
1 19
1 160
1 113
58 73 15 319 194 362 128 157 336 162 77 90 96
 1 15 100 200
283 8
30 58 16 45 80 82 55 95 24 23 86 28 51 47 20
 3 2 300 400
24 68
13 65
15 113
127 177
 1 1 2 1
1 10
1
 4 2 7 15
10 9
4 4
9 3
4 10
1 6
 2 1 1000000000 2000000000
111 1000000000
101 1000000000
5
 2 1 1000000000 2000000000
111 999999998
101 999999998
1
 1 1 1000000000 1000000000
1 1000000000
1

1000000000
 -1
 5
 111
 1
 -1
 -1
 -1
 4
 101
 -1
 -1

import java.util.*;

public class main
{
	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		int k = sc.nextInt();
		
		long s = sc.nextLong();
		long t = sc.nextLong();
		
		car[] cars = new car[n];
		
		for(int i=0;i<n;i++)
		{
			car f = new car();
			f.price=sc.nextLong();
			f.capacity=sc.nextLong();
			cars[i]=f;
		}
		
		long[] gs = new long[k];
		
		for(int j=0;j<k;j++)
		{
			gs[j] = sc.nextLong();
		}
		
		Arrays.sort(gs);
		long[] interm = new long[k+1];
		
		for(int h=0;h<=k-1;h++)
		{
			if(h==0)
				interm[h]=gs[h];
			else
				interm[h]=gs[h]-gs[h-1];
		}
		interm[k]=s-gs[k-1];
		Arrays.sort(interm);
		
		/*for(int h=0;h<=k;h++)
		{
			System.out.println(interm[h]);
		}*/
		
		Arrays.sort(cars,new Comparator<car>(){

			@Override
			public int compare(car c1, car c2) {
				// TODO Auto-generated method stub
				if(c1.capacity>c2.capacity)
					return 1;
				return -1;
			}
			
		});
		
		/*for(int h=0;h<=n-1;h++)
		{
			System.out.println(cars[h].capacity);
		}
		*/
		int fi=-1;
		long[] cs=new long[k+1];
		
		for(int y=0;y<k;y++)
		{
			if(y==0)
			{
				cs[y]=interm[y];
			}
			else
				cs[y]=cs[y-1]+interm[y];
		}
		cs[k]=interm[k]+cs[k-1];
		
		for(int y=0;y<n;y++)
		{
			if(cars[y].capacity>=interm[k])
			{
				fi=y;
				break;
			}
		}
		if(fi==-1)
		{
			System.out.println("-1");
			return;
		}
		//System.out.println(fi);
		Arrays.sort(cars,fi,n,new Comparator<car>(){
			@Override
			public int compare(car c1, car c2) {
				// TODO Auto-generated method stub
				if(c1.price>c2.price)
					return 1;
				return -1;
			}
		});
		
		for(int y=fi; y<n;y++)
		{
			long tt =3*cs[k]-(k+1)*cars[y].capacity;
			//System.out.println(tt);
			if(tt<t)
			{
				System.out.println(cars[y].price);
				return;
			}
		}
		System.out.println("-1");
		return;
	}
}

class car
{
	long price;
	long capacity;
}