#include <bits/stdc++.h>
using namespace std;
int bit[1000010], ls[1000010];
void update(int p, int n, int v) {
  for (; p <= n; p += (p & -p)) bit[p] += v;
}
int query(int p) {
  int res = 0;
  for (; p > 0; p -= (p & -p)) res += bit[p];
  return res;
}
int main() {
  int n, q, k;
  scanf("%d %d", &n, &q);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &k);
    ls[k]++;
    update(k, n, 1);
  }
  while (q--) {
    scanf("%d", &k);
    if (k > 0) {
      update(k, n, 1);
      ls[k]++;
    } else {
      k = -k;
      int esq = 1, dir = n, med, el = (1 << 21);
      while (esq <= dir) {
        med = (esq + dir) >> 1;
        int freq = k - query(med - 1);
        if (k <= 0)
          dir = med - 1;
        else if (ls[med] < freq)
          esq = med + 1;
        else {
          el = min(el, med);
          dir = med - 1;
        }
      }
      ls[el]--;
      update(el, n, -1);
    }
  }
  if (query(n) == 0)
    printf("0\n");
  else {
    for (int i = 1; i <= n; i++) {
      if (ls[i] > 0) {
        printf("%d\n", i);
        return 0;
      }
    }
  }
  return 0;
}
