#include <bits/stdc++.h>
using namespace std;
inline int read() {
  int sum = 0, ff = 1;
  char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') ff = -1;
    ch = getchar();
  }
  while (isdigit(ch)) sum = sum * 10 + (ch ^ 48), ch = getchar();
  return sum * ff;
}
const int N = 2e6 + 5;
int n, m, ans;
struct Bit {
  int C[N];
  inline void add(int x) {
    while (x <= N) {
      C[x]++;
      x += x & (-x);
    }
  }
  inline void del(int x) {
    while (x <= N) {
      C[x]--;
      x += x & (-x);
    }
  }
  inline int ask(int x) {
    int ans = 0;
    while (x) {
      ans += C[x];
      x -= x & (-x);
    }
    return ans;
  }
};
Bit C;
int main() {
  n = read();
  m = read();
  for (int i = 1; i <= n; i++) C.add(read());
  for (int q = 1; q <= m; q++) {
    int x = read();
    if (x > 0)
      C.add(x);
    else {
      x = -x;
      int l = 1, r = n;
      int pos = 0;
      while (l <= r) {
        int mid = (l + r) / 2;
        int gs = C.ask(mid);
        if (gs >= x)
          r = mid - 1, pos = mid;
        else
          l = mid + 1;
      }
      if (pos) C.del(pos);
    }
  }
  for (int i = 0; i <= n; i++)
    if (C.ask(i) > 0) return printf("%d ", i), 0;
  puts("0");
  return 0;
}
