#include<bits/stdc++.h>
using namespace std;
const int N=2e5+1000;
typedef long long ll;
inline ll read()
{
ll n=0,x=1;char ch=getchar();
if(ch=='-') x=-1;
while(ch<'0'||'9'<ch)ch=getchar();
while(ch>='0'&&ch<='9'){n=n*10+ch-'0';ch=getchar();}
return n*x;
}
ll ans=0;
ll m,n,d;
ll a[N],b[N];
bool cmp(int a,int b) {
return a>b;
}
int main()
{
n=read();
m=read();
d=read();
for(int i=1;i<=n;i++)
{
a[i]=read();
}
for(int i=1;i<=m;i++)
{
b[i]=read();
}
sort(a+1,a+1+n,cmp);
sort(b+1,b+1+m,cmp);
int i=1,j=1;
while(i<=n&&j<=m){
while(b[j]>a[i]+d&&j<=m) {
j++;
}
if(i<=n&&j<=m)
if(abs(b[j]-a[i])<=d){
cout<<b[j]+a[i];
return 0;
}
while(a[i]>b[j]+d&&i<=n){
i++;
}
if(i<=n&&j<=m)
if(abs(b[j]-a[i])<=d){
cout<<b[j]+a[i];
return 0;
}
if(i==n+1)
{
for(int k=1;k<=m;k++)
{
if(abs(b[k]-a[n])<=d)
{
cout<<a[n]+b[k];
return 0;
}
}
}
if(j==m+1)
{
for(int k=1;k<=n;k++)
{
if(abs(b[m]-a[k])<=d)
{
cout<<a[k]+b[m];
return 0;
}
}
}
}
cout<<-1;
return 0;
}