17 стільців#4257

17 стільців

1 секунда
256 мегабайтів
Дуже складна

Остап Бендер знову намагається роздобути цінні коштовності, але цього разу вони заховані у спеціальній скриньці, яку можна відкрити лише ключами. Випадково кожен ключ заховано в одному з стільців, які були продані на нещодавньому аукціоні. Після аукціону ці стільці доставили у різних міст.

Тепер Остап вирішив відвідати кожне з міст, щоб ретельно обшукати їх та зібрати всі ключі зі стільців. Щоб уникнути зайвих ускладнень, Остап не хоче відвідувати жодне місто більше одного разу. Також у нього є список вартостей поїздок між кожною парою міст. Початково Остап знаходиться у місті номер , і після збору всіх ключів, відвідавши кожне місто, він спокійно може залишити країну.

Допоможіть Остапу визначити порядок відвідувань міст таким чином, щоб витратити якнайменше грошей на подорожі. Можливо, якщо у вас вийде, він поділиться з вами часткою знайдених коштовностей.

Вхідні дані

У першому рядку знаходиться кількість міст .

Далі йдуть рядків по невід'ємних цілих чисел у кожному. -те число у -му рядку вказує на вартість поїздки з міста до міста . Якщо a_{ij} > 0, то вартість дорівнює a_{ij} рублів; у іншому випадку, це означає, що прямий переїзд з міста до міста неможливий.

Кількість міст не перевищує кількості, зазначеної у назві задачі, а вартість поїздки між двома містами не перевищує .

Вихідні дані

У першому рядку виведіть мінімальну суму грошей, необхідну Остапу, щоб відвідати всі міста. У наступному рядку виведіть чисел — порядок, у якому Остап має відвідати міста для досягнення цієї вартості.

Якщо неможливо зібрати всі ключі, дотримуючись зазначених умов, виведіть одне число .

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading