BB
using namespace std;
#define int long long
const int mx = 1e6+7;
//const int N = 1e6+7;
#define ll long long
int as[mx] = {0}, bs[mx], cs[mx] = {0};
//stack<char>st;
typedef pair<ll, ll> pii;
const int M = 1e9+7;
const int mod = 998244353;
//const int mod = 1e9+7;
//std::;
map<char, int>mp;
set<string>st;
int dir[4][2] = {{-1, 0}, {1, 0}, {0, 1}, {0, -1}};
typedef long long LL;
//set<pair<int, int> >st, cnt;
//set<array<int,5> >ay; ay.insert({1,2,3,4,5});
//struct node{ int x,y,t,ok;
// bool operator<(const node& y) const{
// return y.t < t;//以t从小到大排序
// } }; priority_queue<node>q;
int ksm(int base, int index) {
int result = 1;
while (index) {
if (index & 1) {
result = result * base % mod;
}
base = base * base % mod;
index >>= 1;
}
return result;
}
typedef long long Z;
struct Comb {
int n;
vector<Z> fac, inv_fac;
Comb(int size = 1 << 20) : n(size), fac(size + 1), inv_fac(size + 1) {
fac[0] = 1;
for (int i = 1; i <= size; ++i) {
fac[i] = fac[i - 1] * i % mod;
}
inv_fac[size] = ksm(fac[size], mod - 2, mod);
for (int i = size - 1; i >= 0; --i) {
inv_fac[i] = inv_fac[i + 1] * (i + 1) % mod;
}
}
Z ksm(Z base, Z exp, Z mod) {
Z res = 1;
while (exp) {
if (exp & 1) res = res * base % mod;
base = base * base % mod;
exp >>= 1;
}
return res;
}
Z C(int a, int b) {
if (a < 0 || b < 0 || a < b) return 0;
return fac[a] * inv_fac[b] % mod * inv_fac[a - b] % mod; //
}
Z P(int a, int b) {
if (a < 0 || b < 0 || a < b) return 0;
return fac[a] * inv_fac[a - b] % mod;
}
};
Comb comb;
//--------------------------------------------------------------//
void solve() {
int n, m, X;
cin >> n >> m >> X;
int mxn = LLONG_MIN;
int mi = LLONG_MAX;
for (int i = 1; i <= n; i++)cin >> as[i];
for (int i = 1; i <= m; i++)cin >> bs[i], mi = min(mi, bs[i]), mxn = max(mxn, bs[i]);
for (int i = 1; i <= n; i++) {
if (X > as[i]) {
if (mi >= X)continue;
else if (mi >= as[i])X = mi;
else if (mi < as[i])X = as[i];
}
else if (X == as[i])continue;
else {
if (mxn >= as[i])X = as[i];
else if (mxn >= X)X = mxn;
else if (mxn < X)continue;
}
}
cout << X << endl;
}
signed main() {
int T = 1;
// cin >> T;
while (T--) {
// cout<<"?"<<endl;
solve();
}
return 0;
}