#include <bits/stdc++.h>
#pragma optimize("O2")
using namespace std;
int h[1000001];
class fenwick {
  vector<int> bit;
  int N;

 public:
  fenwick(int n) {
    N = n + 5;
    bit.resize(N);
  }
  template <typename T>
  void init(T &arr, int n) {
    for (int i = 1; i <= n; ++i) {
      bit[i] += arr[i];
      if (i + (i & -i) < N) {
        bit[i + (i & -i)] += bit[i];
      }
    }
  }
  void add(int i, int val) {
    while (i < N) {
      bit[i] += val;
      i += (i & -i);
    }
  }
  int query(int i) {
    int ans(0);
    while (i > 0) {
      ans += bit[i];
      i -= (i & -i);
    }
    return ans;
  }
  int lower_bound(int val) {
    static const int LOG = log2(N);
    int sum = 0, pos = 0;
    for (int i = LOG; i >= 0; --i) {
      int calc = pos + (1 << i);
      if (calc < N && sum + bit[calc] < val) {
        sum += bit[calc];
        pos = calc;
      }
    }
    if (pos > N - 5) pos = N - 5;
    return pos + 1;
  }
};
namespace IO {
const int BUFFER_SIZE = 1 << 15;
char input_buffer[BUFFER_SIZE];
size_t input_pos = 0, input_len = 0;
void _update_input_buffer() {
  input_len = fread(input_buffer, sizeof(char), BUFFER_SIZE, stdin);
  input_pos = 0;
  if (input_len == 0) input_buffer[0] = EOF;
}
inline char next_char(bool advance = true) {
  if (input_pos >= input_len) _update_input_buffer();
  return input_buffer[advance ? input_pos++ : input_pos];
}
template <typename T>
inline void read_int(T &number) {
  bool negative = false;
  number = 0;
  while (!isdigit(next_char(false)))
    if (next_char() == '-') negative = true;
  do {
    number = 10 * number + (next_char() - '0');
  } while (isdigit(next_char(false)));
  if (negative) number = -number;
}
template <typename T, typename... Args>
inline void read_int(T &number, Args &...args) {
  read_int(number);
  read_int(args...);
}
}  // namespace IO
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  fenwick ins(1000000);
  int n, q, x;
  IO::read_int(n, q);
  for (int i = 1; i <= n; ++i) {
    IO::read_int(x);
    ++h[x];
  }
  ins.init(h, 1e6);
  int id;
  while (q--) {
    IO::read_int(id);
    if (id < 0) {
      id = ins.lower_bound(-id);
      ins.add(id, -1);
    } else {
      ins.add(id, 1);
    }
  }
  auto it = ins.lower_bound(1);
  if (it == 1e6 + 1)
    cout << 0;
  else
    cout << it << '\n';
  return 0;
}
