Изменения рейтингов за последние раунды временно удалены. Скоро они будут возвращены. ×
A. Джонни и вклад
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Сегодня Джонни хочет увеличить свой вклад. Его план подразумевает написание $$$n$$$ блогов. Один блог покрывает одну тему, но одна тема может быть покрыта несколькими блогами. Также, некоторые блоги связаны друг с другом ссылками. Каждая пара блогов, связанных ссылкой, должна покрывать две разные темы. Потому что иначе читатели могут заметить, что блоги разделены только для того, чтобы набрать больше вклада. Множество блогов и двусторонние ссылки между некоторыми парами из них называются сетью блогов.

Всего есть $$$n$$$ различных тем, пронумерованных от $$$1$$$ до $$$n$$$, упорядоченных по пониманию Джонни. Структура сети блогов уже приготовлена. Теперь Джонни должен написать все блоги в некотором порядке. Он ленивый, поэтому каждый раз перед написанием блога, он смотрит на все уже написанные соседние блоги (связанные ссылкой с текущим) и выбирает тему с минимальным номером, которая еще не покрыта соседними блогами. Можно заметить, что такая стратегия всегда позволит ему выбрать тему, потому что максимальное количество соседних блогов равно $$$n - 1$$$.

Например, если уже написанные, соседние с текущим, блоги покрывают темы с номерами $$$1$$$, $$$3$$$, $$$1$$$, $$$5$$$ и $$$2$$$, Джонни выберет тему номер $$$4$$$ для текущего блога, потому что темы номер $$$1$$$, $$$2$$$ и $$$3$$$ уже покрыты соседними блогами, а тема номер $$$4$$$ — нет.

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

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

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

Каждая из следующих $$$m$$$ строк содержит два целых числа $$$a$$$ и $$$b$$$ ($$$a \neq b$$$; $$$1 \leq a, b \leq n$$$), которые означают, что в сети блогов есть ссылка между блогами с номерами $$$a$$$ и $$$b$$$. Гарантируется, что граф сети блогов не содержит кратных ребер.

Последняя строка содержит $$$n$$$ целых чисел $$$t_1, t_2, \ldots, t_n$$$, $$$i$$$-е из них обозначает желаемую тему для $$$i$$$-го блога ($$$1 \le t_i \le n$$$).

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

Если решение не существует, выведите $$$-1$$$. Иначе, выведите $$$n$$$ различных целых чисел $$$p_1, p_2, \ldots, p_n$$$ $$$(1 \leq p_i \leq n)$$$, которые обозначают номера блогов в том порядке, в котором Джонни должен их написать. Если существует несколько решений, выведите любое.

Примеры
Входные данные
3 3
1 2
2 3
3 1
2 1 3
Выходные данные
2 1 3
Входные данные
3 3
1 2
2 3
3 1
1 1 1
Выходные данные
-1
Входные данные
5 3
1 2
2 3
4 5
2 1 2 2 1
Выходные данные
2 5 1 3 4
Примечание

В первом примере, Джонни начинает с написания блога номер $$$2$$$, у него пока еще нет написанных соседних блогов, поэтому Джонни выбирает тему номер один. Потом он пишет блог номер $$$1$$$, у него есть ссылка на уже написанный второй блог, поэтому Джонни выбирает вторую тему. Наконец, он пишет блог номер $$$3$$$, у него есть ссылки на блоги номер $$$1$$$ и $$$2$$$, поэтому Джонни выбирает третью тему.

Второй пример: Не существует ни одной перестановки, удовлетворяющей всем условиям.

Третий пример: Сначала Джонни пишет блог номер $$$2$$$, который получает тему $$$1$$$. Затем, он пишет блог $$$5$$$, который тоже получает тему $$$1$$$, потому из него нет ссылки на единственный уже написанный блог (номер $$$2$$$). Затем, он пишет блог $$$1$$$, он получает тему $$$2$$$, потому что из него есть ссылка на блог $$$2$$$ с темой $$$1$$$. Затем, он пишет блог $$$3$$$, из него есть ссылка на блог $$$2$$$, поэтому он получает тему $$$2$$$. Наконец, он пишет блог $$$4$$$, из него есть ссылка на блог $$$5$$$, поэтому он получает тему $$$2$$$.