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.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class C {
	
	static class Car{
		int a,b;
		public Car(int a,int b){
			this.a=a; this.b=b;
		}
	}
	
	static Car arr[]=new Car[200001];
	static int p[]=new int[200001];
	static Scanner sc=new Scanner(System.in);
	static int n,k,s,t;
	
	static boolean can(int tank){
		int total=0, prev=0;
		for(int i=0;i<=k;i++){
			int dist=p[i]-prev;
			//System.out.println("Distance is " + dist);
			if(dist>tank)
				return false;
			else{
				if(dist<=tank/2)
					total+=dist;
				else{
					total+=(tank-dist)+(dist-(tank-dist))*2;
				}
			}
			//System.out.println("total is "+ total);
			prev=p[i];
		}
		if(total<=t)
			return true;
		else
			return false;
	}
	
	static int find(int val){
		int ans=Integer.MAX_VALUE;
		for(int i=0;i<n;i++){
			if(arr[i].b>=val&&arr[i].a<ans){
				ans=arr[i].a;
			}
		}
		return ans;
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		n=sc.nextInt(); k=sc.nextInt(); s=sc.nextInt(); t=sc.nextInt();
		for(int i=0;i<n;i++){
			int a,b;
			a=sc.nextInt(); b=sc.nextInt();
			Car c=new Car(a,b);
			arr[i]=c;
		}
		for(int i=0;i<k;i++)
			p[i]=sc.nextInt();
		p[k]=s;
		Arrays.sort(p,0,k+1);
		int r=Integer.MAX_VALUE, l=0;
		while(r-l>1){
			int mid=l+((r-l)/2);
			//System.out.println("R is " + r + " L is " + l + " Mid is "+ mid);
			if(can(mid)==true){
				r=mid;
			}
			else{
				l=mid;
			}
		}
		//System.out.println("R is " + r );
		System.out.println(find(r));
		
	}

}
