Гарри Поттер и железная дорога
시간 제한2초메모리 제한1024 MB
m개의 주문을 m개의 도로에 하나씩 배정해 모든 역에서 인접한 도로 번호들의 최대공약수가 1이 되게 하는 배정을 찾는다.
문제
Гарри, возглавив подразделения мракоборцев, решил защитить железные дороги от злой магии. Всего в мире волшебников железнодорожных станций и железных дорог, соединяющих эти станции. Каждая дорога соединяет две различные станции, причем станции могут быть соединены более чем одной дорогой. По каждой железной дороге поезда ходят в обе стороны. Также известно, что между любыми двумя станциями существует путь, состоящий из железных дорог.
У Гарри в запасе новых защитных заклинаний, пронумерованных целыми числами от до . Каждое заклинание накладывается на какую-то железную дорогу. Гарри не может использовать одно и то же заклинание для защиты более чем одной железной дороги.
Помимо защиты железных дорог, Гарри хочет, чтобы те же заклинания охраняли и станции. Станция находится под охраной, если наибольший общий делитель номеров заклинаний, защищающих железные дороги, соединяющие эту станцию с остальными, равен единице.
Помогите Гарри защитить все железные дороги так, чтобы каждая станция была под охраной.
입력
В первой строке входного файла находится целое число () --- количество железнодорожных станций и число () --- количество железных дорог. Каждая из следующих строк содержит по два целых числа: и () --- номера станций, соединенных этой железной дорогой.
출력
Выведите <<IMPOSSIBLE>>, если невозможно защитить все дороги так, чтобы каждая станция была под охраной. В противном случае выведите чисел по одному в строке, -я строка должна содержать номер заклинания, которое защищает железную дорогу, описанную в -й строке входного файла.