eolymp
bolt
Try our new interface for solving problems
Problems

Верификация моделей

Верификация моделей

Time limit 1 second
Memory limit 64 MiB

Сережа работает над новым проектом по верификации недетерминированных программных моделей. Первая версия программы будет работать с ациклическими программами. Ациклическая программа в виде, пригодном для верификации, представляется в виде ориентированного ациклического взвешенного графа, в котором есть вершина s, из которой достижимы все остальные.

Результатом верификации ациклической программы является верификационное дерево. Верификационным деревом называется ориентированное корневое дерево с корнем в вершине s, по дугам которого можно добраться из вершины s до любой другой вершины. Изучаемой характеристикой верификационного дерева является его характеристика Бабёнко-Копелиовича (ХБК) - количество единиц в двоичной записи суммы весов дуг, из которых оно состоит. Поскольку у ациклической программы может быть несколько верификационных деревьев, Сережу интересует среднее значение ХБК по всем возможным верификационным деревьям.

Input data

Первая строка входного файла содержит два целых числа n и m - количество вершин и дуг графа, соответственно (2n20, 1m50). Вершина s имеет номер 1. Следующие m строк содержат по три целых числа a_i, b_i и c_i - номер вершины, из которой выходит дуга, номер вершины, в которую она входит и вес этой дуги. Веса дуг неотрицательны и не превышают 10^7. В графе нет параллельных дуг. В графе нет циклов.

Output data

Выведите в выходной файл одно вещественное число - среднее количество единиц в двоичной записи веса верификационного дерева. Ответ должен отличаться от правильного не более чем на 10^{-6}.