#include <bits/stdc++.h>
using namespace std;
template <typename T>
T sgn(T x) {
  return x < 0 ? -1 : (x > 0 ? 1 : 0);
}
template <typename T>
T gcd(T a, T b) {
  return a ? gcd(b % a, a) : b;
}
template <typename T>
T abs(T x) {
  return x < 0 ? -x : x;
}
template <typename T>
T sqr(T x) {
  return x * x;
}
int n, ft[((int)1e6 + 123)], q;
int MenorBit(int x) { return x & (-x); }
int sum(int x) {
  int r = 0;
  for (; x; x -= MenorBit(x)) r += ft[x];
  return r;
}
void mudaFreq(int v, int add) {
  for (; v <= n; v += MenorBit(v)) ft[v] += add;
}
void mostra() {
  for (int i = 1; i < n + 1; i++) {
    printf("%d %d %d\n", i, ft[i], sum(i));
  }
  printf("\n");
}
int bb(int x) {
  int lo = 1, hi = n + 1, mid;
  for (int i = 0; i < 40; i++) {
    mid = (lo + hi) / 2;
    if (sum(mid) < x) {
      lo = mid;
    } else {
      hi = mid;
    }
  }
  return hi;
}
void solve() {
  scanf("%d %d", &n, &q);
  for (int i = 0, val; i < n; i++) {
    scanf("%d", &val);
    mudaFreq(val, 1);
  }
  for (int val, it = 0; it < q; it++) {
    scanf("%d", &val);
    if (val < 0) {
      val *= -1;
      mudaFreq(bb(val), -1);
    } else {
      mudaFreq(val, 1);
    }
  }
  int ans = bb(1);
  printf("%d\n", (ans > n ? 0 : ans));
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  solve();
}
