Задача №114319. Трамвай

Места в новом трамвае в Загребе организованы в виде сетки, состоящей из \(N\) рядов, пронумерованных от \(1\) до \(N\), и двух столбцов, пронумерованных от \(1\) до \(2\). Расстояние между между сиденьями \((R_a, C_a)\) и \((R_b, C_b)\) равно евклидому расстоянию между центрами соответствующих клеток, а именно \(\sqrt{(R_a - R_b)^2 + (C_a - C_b)^2}\).

Большинство пассажиров предпочитают уединение при использовании общественного транспорта, и они всегда стараются выбрать место, которое находится как можно дальше от других пассажиров. Точнее говоря, когда пассажир садится в трамвай, он выбирает свободное место, расстояние от которого до ближайшего занятого места максимально. Если имеется более одного такого места, он всегда выбирает место с номером в меньшем ряду, а если есть несколько таких мест, он выбирает место с наименьшим столбцом. После того, как пассажир выберет место, он будет сидеть там до тех пор, пока не покинет трамвай. Если трамвай пуст, следующий пассажир, который будет входить, всегда будет выбирать место в ряду 1 и столбце 1.

Напишите программу, которая, учитывая последовательность событий и тип каждого события, определяет, куда сядет каждый из пассажиров. Трамвай изначально пуст.

События пронумерованы от \(1\) до \(M\) в том порядке, в котором они произошли. Существует два вида событий: событие типа «Е» соответствует пассажиру, входящему в трамвай, а событие типа «L» соответствует пассажиру, покидающему трамвай. Для события типа «L» также дается целое число \(P\) - оно указывает, что уходящий пассажир - это тот, который зашел в трамвай во время события \(P\).

Гарантируется, что в трамвае всегда будет хотя бы одно свободное место, когда пассажир пытается войти.

Входные данные

Первая строка ввода содержит два целых числа \(N\) и \(M\) \((1 \le N \le 150 000, 1 \le M \le 30 000)\), количество рядов в трамвае и количество событий. Следующие \(M\) строк содержат описание событий, \(K\)-я из этих строк содержит описание события \(K\) - либо символ «E», либо символ «L», за которым следует целое число \(P_k\) \((1 \le P_k < K)\). Гарантируется, что событие \(P_k\) относится к типу «E», и ни один пассажир не будет пытаться покинуть трамвай дважды.

Выходные данные

Для каждого события типа «E» в том порядке, в котором они произошли, выведите строку и номер столбца места, на которое сел пассажир.

Система оценки

В тестах суммарной стоимости в 25 баллов выполняется \(N \le 150\) и \(M \le 150\)

В тестах суммарной стоимости в 45 баллов выполняется \(N \le 1500\) и \(M \le 1500\)

В тестах суммарной стоимости в 65 баллов выполняется \(N \le 150 000\) и \(M \le 1500\)

Примеры
Входные данные
3 7
E
E
E
L 2
E
L 1
E
Выходные данные
1 1
3 2
1 2
3 1
1 1
Входные данные
13 9
E
E
E
E
E
E
E
E
E
Выходные данные
1 1
13 2
7 1
4 2
10 1
2 2
3 1
5 1
6 2
Входные данные
10 9
E
E
E
E
L 3
E
E
L 6
E
Выходные данные
1 1
10 2
5 2
7 1
4 2
2 2
4 1
Сдать: для сдачи задач необходимо войти в систему