Реалізуйте збалансоване двійкове дерево пошуку.
Вхідний файл містить опис операцій з деревом, їх кількість не перевищує . Формат операцій дивіться у попередній задачі. У кожному рядку знаходиться одна з таких операцій:
insert x - додати у дерево ключ . Якщо ключ уже в дереві, нічого робити не потрібно.
delete x - видалити з дерева ключ . Якщо ключа у дереві немає, нічого робити не потрібно.
exists x - якщо ключ є у дереві, виведіть "true", інакше "false".
next x - виведіть мінімальний елемент у дереві, строго більший за , або "none", якщо такого немає.
prev x - виведіть максимальний елемент у дереві, строго менший за , або "none", якщо такого немає.
kth k - виведіть -ий за величиною елемент (нумерація з одиниці). Якщо такого не існує, виведіть "none".
Усі числа у вхідному файлі цілі і за модулем не перевищують 10^9.
Виведіть послідовно результати виконання усіх операцій exists, next, prev. Дотримуйтеся формату вихідного файлу, наведеного у прикладі.
Приклад 1