@Override
  protected @NotNull RMNode<T> createNewNode(@NotNull T key,
                                             int start,
                                             int end,
                                             boolean greedyToLeft,
                                             boolean greedyToRight,
                                             boolean stickingToRight,
                                             int layer) {
    assert start == end;
    assert !greedyToLeft;
    assert !greedyToRight;
    return new Node<>(this, key, start, start, false, false, stickingToRight);
  }
@Override
  protected @NotNull RMNode<T> createNewNode(@NotNull T key,
                                             int start,
                                             int end,
                                             boolean greedyToLeft,
                                             boolean greedyToRight,
                                             boolean stickingToRight,
                                             int layer)