#include <bits/stdc++.h>
using namespace std;
void fast() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
}
const long long INFll = 1ll * 1000000000 * 1000000000;
const long double PI =
    3.141592653589793238462643383279502884197169399375105820974944;
int mul(int a, int b, int mod = 1000003) { return int(a * 1ll * b % mod); }
int norm(int a, int mod = 1000003) {
  while (a >= mod) a -= mod;
  while (a < 0) a += mod;
  return a;
}
int powmod(int x, int y, int mod = 1000003) {
  int res = 1;
  while (y > 0) {
    if (y & 1) res = mul(res, x, mod);
    x = mul(x, x, mod);
    y = y >> 1;
  }
  return res;
}
int inv(int a, int mod = 1000003) { return powmod(a, mod - 2); }
int main() {
  fast();
  long long n, m, ta, tb, k, ans = 0;
  cin >> n >> m >> ta >> tb >> k;
  vector<long long> a(n), b(m);
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  for (int i = 0; i < m; i++) {
    cin >> b[i];
  }
  if (k >= n || k >= m) {
    cout << -1;
    return 0;
  }
  for (int i = 0; i < n; i++) {
    int pos = lower_bound(b.begin(), b.end(), a[i] + ta) - b.begin();
    long long rem = k - (i);
    if (rem < 0) break;
    pos += rem;
    if (pos >= m) {
      ans = -1;
      break;
    }
    ans = max(ans, b[pos] + tb);
  }
  cout << ans;
  return 0;
}
