Олимпиадный тренинг

Задача . B. Простые молекулы


Безумный ученый Майк ставит эксперименты по химии. Сегодня он попытается собрать одну молекулу из трех атомов.

Известно, что молекула состоит из атомов, некоторые пары которых соединены атомарными связями. У каждого атома есть значение валентности — количества связей, которые атом должен образовывать с другими атомами. Атом может создавать одну или несколько связей с любым другим атомом, но не с самим собой. Количество связей для атома в молекуле должно быть равно его валентности.

Майку известны валентности всех трех атомов. Найдите молекулу, которую из них можно собрать, или же определите, что это невозможно.

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

В единственной строке входных данных через пробел записаны три целых числа a, b и c (1 ≤ a, b, c ≤ 106) — валентности трех данных атомов.

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

Если нужная молекула существует, выведите через пробел три целых числа — количество связей между 1-м и 2-м, 2-м и 3-м, 3-м и 1-м атомами соответственно. Если решений несколько, выведите любое. Если решения не существует, выведите «Impossible» (без кавычек).

Примечание

Первый пример соответствует первому рисунку. Между 1-м и 2-м атомами в данном случае нет связей.

Второй пример соответствует второму рисунку. Между каждой парой атомов есть одна или несколько связей.

Третий пример соответствует третьему рисунку. Решения не существует, потому что атом не может образовывать связи с самим собой.

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


Примеры
Входные данныеВыходные данные
1 1 1 2
0 1 1
2 3 4 5
1 3 2
3 4 1 1
Impossible

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя