QOJ.ac

QOJ

Time Limit: 5 s Memory Limit: 2048 MB Total points: 100

#8686. Управление зоопарком

Statistics

При управлении зоопарком иногда хочется переместить животных между вольерами. Например, зебрам может понравиться более просторный вольер, сейчас занятый пингвинами, а пингвины захотят в более холодный вольер, где сейчас живут коалы; коалы же переедут в пустой вольер, который можно заполнить эвкалиптом. Тогда сначала следует переместить коал, освободив холодный вольер, затем пингвинов туда и, наконец, зебр.

Животных перемещают по специальным туннелям, соединяющим вольеры: вы не хотите, чтобы они выходили наружу, как из-за риска испугаться, так и из-за риска убежать и пораниться.

problem_8686_a2a053ee36bb78fadb0dd8509481feee.png

Фотография зоопарка с верблюдом, ослом и (частью) козы.

К сожалению, недавно вы приобрели ещё животных, и теперь все вольеры заполнены, что сильно усложняет перемещения. Представьте, например, что коалы должны попасть в бывший вольер зебр: тогда никакую группу нельзя переместить первой. Вместо этого вы научились перемещать животных одновременно: зебры, коалы и пингвины одновременно начинают идти по разным туннелям и одновременно прибывают в новые вольеры, поэтому никогда не встречаются. Заметьте, что так нельзя просто поменять местами животных двух соединённых вольеров (они встретятся в туннеле и испугаются).

Итак, перед вами головоломка. Есть список вольеров, в каждом находится один тип животных; некоторые вольеры соединены туннелями. Вы можете сколько угодно раз выбирать некоторое множество животных и перемещать каждое в соседний по туннелю вольер, если животное в том вольере тоже перемещается в рамках того же хода и ни один туннель не используется за этот ход более одного раза. У вас также есть представление об идеальном расположении животных. Можно ли достичь его последовательностью ходов?

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

Первая строка входных данных содержит два целых числа $n$ ($1 \le n \le 4 \cdot 10^5$) и $m$ ($0 \le m \le 4 \cdot 10^5$), обозначающие количество вольеров и туннелей. Далее следуют $n$ строк, в $i$-й из которых находятся два целых числа $b_i$ ($1 \le b_i \le 10^6$) и $e_i$ ($1 \le e \le 10^6$), обозначающие тип животного в вольере $i$ вначале и тип, который вы хотите получить в вольере $i$ после всех ходов. Можно считать, что $e_1, \ldots, e_n$ — перестановка $b_1, \ldots, b_n$.

Далее следуют $m$ строк с описаниями туннелей. Каждая содержит два целых числа $x$ и $y$ ($1 \le x < y \le n$), обозначающие, что вольеры $x$ и $y$ соединены двусторонним туннелем. Никакие два вольера не соединены более чем одним туннелем.

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

Если можно переместить животных так, чтобы каждый вольер содержал нужный тип животных, выведите possible. Иначе выведите impossible.

Примеры

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

3 3
1 4
4 7
7 1
1 2
2 3
1 3

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

possible

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

2 1
1 2
2 1
1 2

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

impossible

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

5 6
10 40
20 30
30 50
40 20
50 10
1 2
2 3
1 3
3 4
3 5
4 5

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

possible

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

4 4
10 10
10 20
20 10
20 20
1 2
2 3
3 4
1 4

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

impossible

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.