#include <bits/stdc++.h>
using namespace std;
template <class Abel>
struct BIT {
  vector<Abel> dat;
  Abel UNITY_SUM = 0;
  BIT(int n) { init(n); }
  void init(int n) {
    dat.resize(n + 1);
    for (int i = 0; i < (int)dat.size(); ++i) dat[i] = UNITY_SUM;
  }
  inline void add(int a, Abel x) {
    for (int i = a; i < (int)dat.size(); i += i & -i) dat[i] = dat[i] + x;
  }
  inline Abel sum(int a) {
    Abel res = UNITY_SUM;
    for (int i = a; i > 0; i -= i & -i) res = res + dat[i];
    return res;
  }
  inline Abel sum(int a, int b) { return sum(b - 1) - sum(a - 1); }
  int get(int k) {
    ++k;
    int res = 0;
    int N = 1;
    while (N < (int)dat.size()) N *= 2;
    for (int i = N / 2; i > 0; i /= 2) {
      if (res + i < (int)dat.size() && dat[res + i] < k) {
        k = k - dat[res + i];
        res = res + i;
      }
    }
    return res + 1;
  }
};
int main() {
  ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
  BIT<int> bit(1000100);
  int n, q;
  int x;
  int l;
  cin >> n >> q;
  for (int i = (0), i_end_ = (n); i < i_end_; i++) {
    cin >> x;
    bit.add(x, 1);
  }
  l = n;
  int cnt;
  int num;
  int erasecount = n;
  for (int i = (0), i_end_ = (q); i < i_end_; i++) {
    cin >> x;
    if (x < 0) {
      erasecount -= 1;
      num = bit.get((-x) - 1);
      bit.add(num, -1);
    } else {
      erasecount += 1;
      bit.add(x, 1);
    }
  }
  if (erasecount == 0) {
    cout << 0 << "\n";
  } else {
    cout << bit.get(0) << "\n";
  }
}
