A. Минимальное двоичное число
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Строка называется правильной тогда и только тогда, когда она состоит из символов "0" и "1", а также в ней отсутствуют избыточные лидирующие нули. Вот несколько примеров: «0», «10», «1001».

Задана правильная строка s.

Над этой строкой можно проводить два типа операций:

  1. поменять местами два соседних символа (например, «101» «110»);
  2. заменить «11» на «1» (например, «110» «10»).

Определим val(s), как такое число, что s является его двоичным представлением.

Правильная строка a меньше другой правильной строки b тогда и только тогда, когда val(a) < val(b).

Ваша задача — найти минимальную правильную строку, которую можно получить из заданной, применив некоторую последовательность выше описанных операций. Операции можно использовать в любом порядке любое количество раз (или не использовать совсем).

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

В первой строке записано одно целое число n (1 ≤ n ≤ 100) — длина строки s.

Вторая строка содержит строку s из символов "0" и "1". Гарантируется, что строка s правильная.

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

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

Примеры
Входные данные
4
1001
Выходные данные
100
Входные данные
1
1
Выходные данные
1
Примечание

В первом примере можно получить ответ следующей последовательностью операций:

«1001» «1010» «1100» «100».

Во втором примере невозможно получить меньший ответ никакой последовательностью операций.