I. Показать доли
3000 мс · 256 МБ · всё или ничего
Неориентированный граф задан списком рёбер. Если он двудольный, выведите разбиение вершин на две доли; иначе сообщите, что его нет.
Чтобы ответ был единственным, красьте так: обход запускается из вершин по возрастанию номера, стартовая вершина каждой компоненты попадает в первую долю.
Формат ввода
Первая строка содержит числа () и ().
Далее идут строк с рёбрами. Возможны петли и кратные рёбра.
Формат вывода
Если граф не двудольный, выведите .
Иначе в первой строке выведите размер первой доли и её вершины по возрастанию, во второй — то же для второй доли. Если доля пуста, выведите только ноль.
Примеры
ввод
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
Войдите, чтобы отправлять решения.