Фермер Джон и его коровы планируют уехать на длинные каникулы,
и поэтому ФД хочет временно закрыть ферму.
Ферма состоит из \(N\) амбаров, соединённых \(M\) двунаправленными дорожками
между некоторыми парами амбаров (\(1 \leq N, M \leq 200,000\)). ФД закрывает
один амбар за раз. После того как амбар закрыт, все дорожки, прилегающие
к нему тоже становятся закрытыми и не могут больше использоваться.
ФД хочет знать в каждый момент времени (изначально и после каждого
закрытия), является ли его ферма "полностью связной" - то есть возможно
ли добраться от одного открытого амбара до любого другого открытого амбара
с помощью серии дорожек. Поскольку на ферме идёт ремонт, она может быть
не связной даже изначально.
ФОРМАТ ВВОДА (файл closing.in):
Первая строка ввода содержит числа \(N\) и \(M\). Каждая из следующих \(M\)
строк описывает дорожку , задавая пару амбаров, которые она соединяет
(амбары пронумерованы последовательно \(1 \ldots N\)). Последние \(N\) строк
задают перестановку \(1 \ldots N\) описывающую порядок, в котором будут
закрываться амбары.
ФОРМАТ ВЫВОДА (файл closing.out):
Вывод содержит \(N\) строк, каждая есть "YES" или "NO". Первая строка
отвечает на попрос была ли ферма полностью связанной изначально, а далее
строка \(i+1\) указывает, осталась ли ферма полностью связной после \(i\)-го
закрывания.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
4 3 1 2 2 3 3 4 3 4 1 2
|
YES
NO
YES
YES
|