Орієнтування
Лукашу дуже подобається спортивне орієнтування — спорт, що вимагає знаходження контрольних точок на пересіченій місцевості. Щоб розважити учасників 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".