#include <bits/stdc++.h>
using namespace std;
int tree[4 * 1000006];
void update(int node, int lo, int hi, int index, int val) {
  if (lo > index || hi < index) return;
  if (lo == hi) {
    tree[node] += val;
    return;
  }
  int mid = lo + hi;
  mid /= 2;
  update(node * 2, lo, mid, index, val);
  update(node * 2 + 1, mid + 1, hi, index, val);
  tree[node] = tree[node * 2] + tree[node * 2 + 1];
}
int query(int node, int lo, int hi, int k) {
  if (lo == hi) return lo;
  int mid = lo + hi;
  mid /= 2;
  if (tree[node * 2] >= k)
    return query(node * 2, lo, mid, k);
  else
    return query(node * 2 + 1, mid + 1, hi, k - tree[node * 2]);
}
int main() {
  int n, q;
  scanf("%d", &n);
  scanf("%d", &q);
  for (int i = 1; i <= n; i++) {
    int x;
    scanf("%d", &x);
    update(1, 1, n, x, 1);
  }
  for (int i = 1; i <= q; i++) {
    int x;
    scanf("%d", &x);
    if (x > 0)
      update(1, 1, n, x, 1);
    else {
      int rem = query(1, 1, n, -x);
      update(1, 1, n, rem, -1);
    }
  }
  if (tree[1] == 0)
    printf("0\n");
  else
    printf("%d\n", query(1, 1, n, 1));
}
