#include <bits/stdc++.h>
using namespace std;
int mod = 1e9 + 7;
long long powmod(long long a, long long b) {
  long long res = 1;
  if (a >= mod) a %= mod;
  for (; b; b >>= 1) {
    if (b & 1) res = res * a;
    if (res >= mod) res %= mod;
    a = a * a;
    if (a >= mod) a %= mod;
  }
  return res;
}
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
const int N = 200000 + 5;
long long n, k, s, t, len[N], c[N], v[N], g[N], sum[N];
int ans = mod;
long long maxlen;
bool ok(long long cap) {
  long long tim = 0;
  int idx = upper_bound(len, len + k, cap / 2) - len;
  if (idx) tim += sum[idx - 1];
  if (idx != k) {
    tim -= cap * 1LL * (k - idx);
    tim += 3 * sum[k - 1];
    if (idx) tim -= 3 * sum[idx - 1];
  }
  return tim <= t;
}
int main() {
  ios_base::sync_with_stdio(false);
  ;
  cin.tie(0);
  int i, j;
  cin >> n >> k >> s >> t;
  for (i = 0; i < n; i++) {
    cin >> c[i] >> v[i];
  }
  for (i = 0; i < k; i++) {
    cin >> g[i];
  }
  sort(g, g + k);
  g[k] = s;
  int last = 0;
  for (i = 0; i <= k; i++) {
    len[i] = g[i] - last;
    last = g[i];
    maxlen = max(maxlen, len[i]);
  }
  k++;
  sort(len, len + k);
  sum[0] = len[0];
  for (i = 1; i < k; i++) sum[i] = len[i] + sum[i - 1];
  for (i = 0; i < n; i++) {
    if (v[i] >= maxlen && ans > c[i] && ok(v[i])) ans = c[i];
  }
  if (ans == mod) ans = -1;
  cout << ans << '\n';
  return 0;
}
