Випадкова прогулянка у DAG#3378

Випадкова прогулянка у DAG

1 секунда
64 мегабайти
Середня

Ви досліджуєте орієнтований граф із вершинами та ребрами. Граф не містить циклів. Ви починаєте у вершині . У кожній вершині ви випадковим чином вибираєте одне з її вихідних ребер, причому ймовірність вибору кожного ребра пропорційна його вазі.

Ви продовжуєте дослідження, доки не потрапите у вершину, з якої немає вихідних ребер. Довжина вашого шляху дорівнює кількості ребер, які ви пройдете. Крім того, перед початком вашого проходження з вершини , ви можете видалити з графа одне ребро (або ж не видаляти жодного). Знайдіть найбільшу можливу очікувану довжину вашого шляху з урахуванням найкращого вибору ребра, яке можна ігнорувати (або не видаляти жодного).

Вхідні дані

Вхід складається з кількох тестів. Кожен тест починається рядком, який містить два цілі числа , 2 \leq N \leq 10000, і , 1 \leq M \leq 100000 — кількість вершин та ребер у графі. Наступні рядків містять по три цілі числа , , (1 \leq w \leq 1000), що означає наявність орієнтованого ребра з вершини у вершину (вершини нумеруються від до N-1) з вагою . Вхід закінчується рядком з N = M = 0.

Вихідні дані

Для кожного тесту виведіть у окремому рядку максимальну можливу очікувану довжину вашого проходження. Ваша відповідь буде вважатися правильною, якщо абсолютна або відносна похибка не перевищує 10^{-6}.

Приклади

Приклад 1

Loading
Loading