#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
const int N = 1e6 + 10;
int sum[4 * N];
int n, q;
void up(int id, int l, int r, int pos) {
  if (l == r) {
    sum[id]++;
    return;
  }
  int mid = l + r >> 1;
  if (pos <= mid)
    up(id << 1, l, mid, pos);
  else
    up(id << 1 | 1, mid + 1, r, pos);
  sum[id] = (sum[id << 1] + sum[id << 1 | 1]);
}
int qu(int id, int l, int r, int k) {
  if (l == r) return l;
  int mid = l + r >> 1;
  if (sum[id << 1] >= k) return qu(id << 1, l, mid, k);
  return qu(id << 1 | 1, mid + 1, r, k - sum[id << 1]);
}
void del(int id, int l, int r, int k) {
  if (l == r) {
    sum[id]--;
    return;
  }
  int mid = l + r >> 1;
  if (sum[id << 1] >= k)
    del(id << 1, l, mid, k);
  else
    del(id << 1 | 1, mid + 1, r, k - sum[id << 1]);
  sum[id] = (sum[id << 1] + sum[id << 1 | 1]);
}
void solve() {
  cin >> n >> q;
  for (int i = 1; i <= (n); ++i) {
    int x;
    scanf("%d", &x);
    up(1, 1, n, x);
  }
  while (q--) {
    int k;
    scanf("%d", &k);
    if (k > 0) {
      up(1, 1, n, k);
    } else
      del(1, 1, n, -k);
  }
  if (sum[1]) {
    printf("%d\n", qu(1, 1, n, 1));
  } else
    puts("0");
}
int main() { solve(); }
