EduBrick

I. Показать доли

3000 мс · 256 МБ · всё или ничего

Неориентированный граф задан списком рёбер. Если он двудольный, выведите разбиение вершин на две доли; иначе сообщите, что его нет.

Чтобы ответ был единственным, красьте так: обход запускается из вершин по возрастанию номера, стартовая вершина каждой компоненты попадает в первую долю.

Формат ввода

Первая строка содержит числа nn (1≤n≤1051 \le n \le 10^5) и mm (0≤m≤2⋅1050 \le m \le 2 \cdot 10^5).

Далее идут mm строк с рёбрами. Возможны петли и кратные рёбра.

Формат вывода

Если граф не двудольный, выведите −1-1.

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

Примеры

ввод
4 4
1 2
2 3
3 4
4 1
вывод
2 1 3
2 2 4
ввод
3 3
1 2
2 3
3 1
вывод
-1
Войдите, чтобы отправлять решения.