Homo или Гетеро?
Рассмотрим список чисел, к которому можно применять две операции:
вставить число — добавляет указанное число в конец списка.
удалить число — удаляет первое вхождение указанного числа из списка. Если указанного числа в списке нет, список остается без изменений.
Например, если вставить число 4 в список [1,2,1], получится [1,2,1,4]. Если затем удалить число 1, получится [2,1,4]. Если попытаться удалить число 3 из списка [1,2,1,4], список не изменится.
Список называется однородным, если в нем есть как минимум два одинаковых числа, и разнородным, если в нем есть как минимум два разных числа. Например, список [2,2] однородный, [2,1,4] разнородный, [1,2,1,4] одновременно однородный и разнородный, а пустой список не является ни однородным, ни разнородным.
Напишите программу, которая обрабатывает последовательность операций вставки и удаления, начиная с пустого списка, и определяет однородность и разнородность списка после каждой операции.
Входные данные
Первая строка входного файла содержит целое число N
(1 ≤ N ≤ 10^5
) — количество операций, которые нужно обработать. Следующие N строк содержат описание каждой операции. Описание состоит из слова "insert" или "delete", за которым следует целое число K
(-10^9 ≤ K ≤ 10^9
) — аргумент операции.
Выходные данные
Для каждой операции выведите строку, содержащую одно слово, описывающее состояние списка после выполнения операции:
“both” — если список одновременно однородный и разнородный.
“homo” — если список однородный, но не разнородный.
“hetero” — если список разнородный, но не однородный.
“neither” — если список не является ни однородным, ни разнородным.