#include <iostream>
#include <vector>
#include <algorithm>
class Set {
 private:
  std::vector<int64_t> vec;
  Set MergeSet(Set const second, Set const first) {
    Set tmp;
    tmp.vec.insert(tmp.vec.end(), second.vec.begin(), second.vec.end());
    tmp.vec.insert(tmp.vec.end(), first.vec.begin(), first.vec.end());
    return tmp;
  }
  int64_t BinSearchPosition(std::vector<int64_t> v,
                            int64_t digit, int64_t left,
                            int64_t right
  ) {
    int64_t mid = (left + right) / 2;
    int64_t Digit_mid = v[mid];
    if (digit == Digit_mid) {
      return -1;
    }
    if (left + 1 == right)
      return mid ? mid + 1 : 0;
    if (digit > Digit_mid) {
      return BinSearchPosition(v, digit, mid, right);
    } else {
      return BinSearchPosition(v, digit, left, mid);
    }
  }

  int64_t BinSearch_Remove(std::vector<int64_t> v,
                           int64_t digit,
                           int64_t left,
                           int64_t right) {
    int64_t mid = (left + right) / 2;
    int64_t Digit_mid = v[mid];
    if (digit == Digit_mid)
      return mid;
    if (left + 1 == right) {
      return -1;
    }
    if (digit > Digit_mid) {
      return BinSearch_Remove(v, digit, mid, right);
    } else {
      return BinSearch_Remove(v, digit, left, mid);
    }
  }