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

Монокарп имеет колоду карт, пронумерованных от $$$1$$$ до $$$n$$$. Изначально карты расположены от меньшей к большей, $$$1$$$ сверху и $$$n$$$ внизу.

Монокарп выполнил $$$k$$$ действий с колодой. Каждое действие было одного из трех типов:

  • убрать верхнюю карту;
  • убрать нижнюю карту;
  • убрать либо верхнюю, либо нижнюю карту.

Ваша задача — определить судьбу каждой карты: осталась ли она в колоде, была ли удалена или может быть и так, и так.

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

Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.

Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le k \le n \le 2 \cdot 10^5$$$).

Вторая строка содержит строку $$$s$$$ длиной $$$k$$$, состоящую из символов 0, 1 и/или 2. Эта строка описывает действия Монокарпа. Если $$$i$$$-й символ равен 0, Монокарп убирает верхнюю карту в $$$i$$$-м действии. Если это 1, он убирает нижнюю карту. Если это 2, можно убрать либо верхнюю, либо нижнюю карту.

Дополнительное ограничение на входные данные: сумма $$$n$$$ по всем наборам входных данных не превышает $$$2 \cdot 10^5$$$.

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

Для каждого набора входных данных выведите строку, состоящую из $$$n$$$ символов. $$$i$$$-й символ должен быть + (плюс), если $$$i$$$-я карта все еще в колоде, - (минус), если она была удалена, или ? (вопросительный знак), если ее точное состояние неизвестно.

Пример
Входные данные
4
4 2
01
3 2
22
1 1
2
7 5
01201
Выходные данные
-++-
???
-
--?+?--