#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6 + 10;
const double pi = acos(-1.0);
const long long mod = 1e9 + 7;
int n, q, sum[MAXN << 2];
void Update(int l, int r, int rt, int x) {
  if (l == r) {
    sum[rt]++;
    return;
  }
  int mid = (l + r) / 2;
  if (x <= mid)
    Update(l, mid, rt << 1, x);
  else
    Update(mid + 1, r, rt << 1 | 1, x);
  sum[rt] = sum[rt << 1] + sum[rt << 1 | 1];
}
void kth(int l, int r, int rt, int k) {
  if (l == r) {
    sum[rt]--;
    return;
  }
  int mid = (l + r) / 2;
  if (sum[rt << 1] >= k)
    kth(l, mid, rt << 1, k);
  else
    kth(mid + 1, r, rt << 1 | 1, k - sum[rt << 1]);
  sum[rt] = sum[rt << 1] + sum[rt << 1 | 1];
}
void Query(int l, int r, int rt) {
  if (l == r) {
    cout << l;
    return;
  }
  int mid = (l + r) / 2;
  if (sum[rt << 1] > 0)
    Query(l, mid, rt << 1);
  else
    Query(mid + 1, r, rt << 1 | 1);
}
void solve() {
  scanf("%d %d", &n, &q);
  for (int i = 1, x; i <= n; i++) {
    scanf("%d", &x);
    Update(1, n, 1, x);
  }
  for (int i = 1, x; i <= q; i++) {
    scanf("%d", &x);
    if (x > 0)
      Update(1, n, 1, x);
    else
      kth(1, n, 1, -x);
  }
  if (sum[1] == 0) {
    puts("0");
    return;
  }
  Query(1, n, 1);
}
int main() {
  int T = 1;
  while (T--) solve();
}
