#include <bits/stdc++.h>
using namespace std;
#pragma GCC push_options
#pragma GCC optimize("unroll-loops")
const int N = int(1e6 + 20);
int fen[N];
void update(int i, int add) {
  while (i > 0 && i < N) {
    fen[i] += add;
    i += (i & (-i));
  }
}
int sum(int i) {
  int s = 0;
  while (i > 0) {
    s += fen[i];
    i = i - (i & (-i));
  }
  return s;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n, q;
  cin >> n >> q;
  for (int i = 0; i < n; i++) {
    int num;
    cin >> num;
    update(num, 1);
  }
  while (q--) {
    int x;
    cin >> x;
    if (x > 0) {
      update(x, 1);
    } else {
      x = -x;
      int low = 0, high = N;
      while (low < high) {
        int mid = (low + high) / 2;
        int val = sum(mid);
        if (x <= val)
          high = mid;
        else
          low = mid + 1;
      }
      update(low, -1);
    }
  }
  int ans = sum(N);
  if (ans == 0)
    cout << 0 << "\n";
  else {
    int low = 0, high = N;
    while (low < high) {
      int mid = (low + high) / 2;
      int val = sum(mid);
      if (ans <= val)
        high = mid;
      else
        low = mid + 1;
    }
    cout << low << "\n";
  }
  return 0;
}
