C. Столкновения роботов
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

$$$n$$$ роботов ездят по координатной оси OX. На этой оси также есть две стены: одна в координате $$$0$$$, другая в координате $$$m$$$.

$$$i$$$-й робот начинает в целой координате $$$x_i~(0 < x_i < m)$$$ и движется либо влево (в сторону $$$0$$$), либо вправо со скоростью $$$1$$$ в секунду. Никакие два робота не начинают в одной координате.

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

Когда несколько роботов встречаются в одной целой координате, они сталкиваются и взрываются. Как только робот взорвался, он больше не сталкивается с другими роботами. Обратите внимание, что если роботы встретятся в нецелой координате, то ничего не случится.

Для каждого робота проверьте, взорвется ли он когда-нибудь, и выведите время взрыва, если да, и $$$-1$$$ в противном случае.

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

В первой строке записано одно целое число $$$t$$$ ($$$1 \le t \le 1000$$$) — количество наборов входных данных.

Затем следуют описания $$$t$$$ наборов входных данных.

В первой строке каждого набора входных данных записаны два целых числа $$$n$$$ и $$$m$$$ ($$$1 \le n \le 3 \cdot 10^5$$$; $$$2 \le m \le 10^8$$$) — количество роботов и координата правой стены.

Во второй строке каждого набора входных данных записаны $$$n$$$ целых чисел $$$x_1, x_2, \dots, x_n$$$ ($$$0 < x_i < m$$$) — начальные координаты каждого робота.

В третьей строке каждого набора входных данных записаны $$$n$$$ символов 'L' или 'R' — начальные направления роботов ('L' означает влево, а 'R' означает вправо).

Все координаты $$$x_i$$$ в наборе входных данных различны.

Сумма $$$n$$$ по всем наборам входных данных не превосходит $$$3 \cdot 10^5$$$.

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

На каждый набор входных данных выведите $$$n$$$ целых чисел — для $$$i$$$-го робота выведите время взрыва, если он взорвется, и $$$-1$$$ в противном случае.

Пример
Входные данные
5
7 12
1 2 3 4 9 10 11
R R L L R R R
2 10
1 6
R R
2 10
1 3
L L
1 10
5
R
7 8
6 1 7 2 3 5 4
R L R L L L L
Выходные данные
1 1 1 1 2 -1 2 
-1 -1 
2 2 
-1 
-1 2 7 3 2 7 3 
Примечание

Изображение секунд $$$0, 1, 2$$$ и $$$3$$$ для первого набора входных данных:

Обратите внимание, что роботы $$$2$$$ и $$$3$$$ не сталкиваются, потому что они встречаются в одной точке $$$2.5$$$, которая не является целой.

После секунды $$$3$$$ робот $$$6$$$ просто ездит бесконечно, потому что нет робота, с которым он мог бы столкнуться.