Ориентирование
Лукашу очень нравится спортивное ориентирование - спорт, который требует нахождения контрольных точек на пересеченной местности. Чтобы развлечь участников NWERC, Лукаш хочет организовать соревнование по ориентированию. Тем не менее, было бы слишком сурово проводить соревнование для участников на открытом воздухе в эту холодную шведскую ноябрьскую погоду, поэтому он решил провести гонки в крытом помещении - в здании B Университета Линчёпинга.
Лукаш уже определился с местонахождением контрольных точек. Он также принял решение о точной продолжительности гонки, поэтому остается только решить, в каком порядке следует посещать контрольные точки чтобы общая продолжительность гонки была такой, какой он пожелает. Поскольку это не всегда возможно, он просит Вас написать программу, которая поможет ему.
Входные данные
Состоит из:
строка из двух чисел n (2 ≤ n ≤ 14) и L (1 ≤ L ≤
10^15
) - количество контрольных точек и желаемая длина гонок;n строк по n целых чисел. j-ое число в i-ой строке
d[ij]
указывает на расстояние между контрольными точками i и j (1 ≤d[ij]
≤ L для i ≠ j иd[ii]
= 0). Для всех 1 ≤ i, j, k ≤ n имеет местоd[ij]
=d[ji]
иd[ij]
≤d[ik]
+d[kj]
.
Выходные данные
Выведите "possible", если есть возможность посетить все контрольные точки один раз в некотором порядке вернувшись к первой так, чтобы общее пройденное расстояние равнялось в точности L. Иначе выведите "impossible".