D. Подарки в Банкополисе
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Банкополис — удивительный город, в котором все n перекрестков расположены на одной прямой, пронумерованы вдоль нее от 1 до n, и на углу каждого из них есть офис банка.

Перекрестки соединены m ориентированными велосипедными дорожками (дорожка номер i ведет от перекрестка ui к перекрестку vi), для каждой дорожки известна сложность проезда по ней.

Обычный клиент банка Олег на день рождения этого самого банка решил подарить счастье и радость его работникам. Он хочет посетить ровно k отделений банка и в каждом посещенном отделении подарить всем его работникам подарки.

Проблема в том, что Олег не хочет видеть реакцию на свои подарки, поэтому он не будет пользоваться дорожкой, проходящей мимо офиса, в котором он уже раздавал подарки (формально, дорожка номер i проходит мимо офиса на перекрестке x если и только если min(ui, vi) < x < max(ui, vi))). Конечно, в каждом офисе Олег может раздавать подарки только один раз. Передвигаться Олег будет по дорожкам, причем он хочет использовать ровно k - 1 дорожку на перемещение между офисами. Олег может начать с любого офиса и закончить поздравлять в любом офисе.

Олег хочет выбрать среди всех возможных маршрутов тот, суммарная сложность дорожек в котором минимальна. Помогите ему найти эту наименьшую возможную сложность.

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

Первая строка содержит два целых числа n и k, (1 ≤ n, k ≤ 80) — количество перекрестков в Банкополисе и количество офисов, которые хочет посетить Олег.

Вторая строка содержит одно целое число m (0 ≤ m ≤ 2000) — количество велосипедных дорожек в Банкополисе.

Следующие m строк содержат информацию о дорожках.

В i-й из этих строк содержится три целых числа ui, vi и ci (1 ≤ ui, vi ≤ n, 1 ≤ ci ≤ 1000), обозначающие перекрестки, которые соединяет i-я дорожка, и ее сложность.

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

В единственной строке выведите минимальную суммарную сложность дорожек в маршруте, или -1, если нет подходящих Олегу маршрутов.

Примеры
Входные данные
7 4
4
1 6 2
6 2 2
2 4 2
2 7 1
Выходные данные
6
Входные данные
4 3
4
2 1 2
1 3 2
3 4 2
4 1 1
Выходные данные
3
Примечание

В первом примере Олег посещает банки по маршруту 1 → 6 → 2 → 4.

Маршрут 1 → 6 → 2 → 7 с меньшей сложностью является некорректным потому что дорожка 2 → 7 проходит мимо офиса 6 в котором Олег уже побывал.

Во втором примере Олег посещает банки по маршруту 4 → 1 → 3.