Условие:
Есть прямоугольная шахматная доска n × m. На ней динамически появляются и исчезают слоны. Нужно отвечать на запросы трёх типов:
1. поставить слона в (x, y);
2. убрать слона из (x, y);
3. для текущего множества слонов выдать минимальное число ходов, за которое хоть один слон сможет попасть в клетку (x, y):
• 0, если слон уже стоит в цели;
• 1, если цель на одной диагонали со слоном;
• 2, если можно дойти за два хода (через промежуточную клетку);
• -1, если недостижимо.
Важно: блокировок нет (другие слоны не мешают движению — это не шахматная партия, а чистая геометрия перемещений).
Ограничения большие: n, m ≤ 10^9, q ≤ 2e5, поэтому решение должно работать за ~O(log q) на запрос и не хранить всю доску.

