G. Слизни объединяются
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Ваш друг подарил вам на день рождения бесконечное количество слизней толщины 1 и 2, и вы решили поиграть, используя этих слизней.

Вы разбиваете подоконник на n ячеек и выбираете некоторое целое число p, которое будет использоваться в игре. Затем, до тех пор пока в последней ячейке нет слизня, выполняется следующая последовательность действий:

  1. С вероятностью выбирается слизень толщины 1, а с вероятностью выбирается слизень толщины 2. Выбранный слизень помещается в ячейку номер n.
  2. Вы последовательно перемещаете нового слизня влево, то есть в направлении ячейки с номером 1. Если он сталкивается с другим слизнем, который при этом имеет одинаковую с ним толщину v, то они объединяются в одного слизня толщины v + 1. Так продолжается до тех пор, пока слизень не дойдет до конца доски или не столкнётся со слизнем, толщина которого отлична от его значения.

Вы играли в эту игру несколько раз, и она вам наскучила. Теперь вы хотите для данных значений n и p вычислить математическое ожидание суммы значений толщины всех слизней на подоконнике после завершения игры.

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

В первой строке входа будет записано два целых числа n, p (1 ≤ n ≤ 109, 1 ≤ p < 109).

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

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

А именно: пусть ваш ответ равен a, а ответ жюри — b. Проверяющая программа будет считать ваш ответ правильным, если .

Примеры
Входные данные
2 500000000
Выходные данные
3.562500000000000
Входные данные
10 1
Выходные данные
64.999983360007620
Входные данные
100 123456789
Выходные данные
269.825611298854770
Примечание

В первом примере подоконник разбит на две ячейки, при этом с вероятностью 0.5 мы добавляем слизня толщины 1, а с вероятностью 0.5 — толщины 2.

В конце игры подоконник может выглядеть как 1 2 с вероятностью 0.25, 2 1 с вероятностью 0.375, 3 2 с вероятностью 0.1875, 3 1 с вероятностью 0.1875. Таким образом математическое ожидание равно (1 + 2)·0.25 + (2 + 1)·0.375 + (3 + 2)·0.1875 + (3 + 1)·0.1875 = 3.5625.