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

Задана строка $$$s$$$, состоящая ровно из $$$n$$$ символов '0', '1' и '2'. Такие строки называются троичными.

Ваша задача — заменить минимальное количество символов в строке другими символами, чтобы получилась сбалансированная троичная строка (сбалансированная троичная строка — это троичная строка, в которой количество символов '0' равно количеству символов '1' и количество символов '1' (и, очевидно, '0') равно количеству символов '2'.

Среди всех сбалансированных троичных строк вам необходимо получить лексикографически (алфавитно) минимальную.

Заметьте, что вы не можете удалять символы из строки и добавлять символы в строку. Также заметьте, что вы можете заменять заданные символы только на символы '0', '1' и '2'.

Гарантируется, что ответ существует.

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

Первая строка входных данных содержит одно целое число $$$n$$$ ($$$3 \le n \le 3 \cdot 10^5$$$, $$$n$$$ делится на $$$3$$$) — количество символов в $$$s$$$.

Вторая строка входных данных содержит строку $$$s$$$, состоящую ровно из $$$n$$$ символов '0', '1' и '2'.

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

Выведите одну строку — лексикографически (алфавитно) минимальную сбалансированную троичную строку, полученную из заданной при помощи минимального количества замен.

Так как $$$n$$$ делится на $$$3$$$, то очевидно, что ответ существует. Также очевидно, что существует только один возможный ответ.

Примеры
Входные данные
3
121
Выходные данные
021
Входные данные
6
000000
Выходные данные
001122
Входные данные
6
211200
Выходные данные
211200
Входные данные
6
120110
Выходные данные
120120