Сбор жуков
Иван увлекается коллекционированием. В отличие от других людей, которые собирают почтовые марки, монеты или другие материальные вещи, он коллекционирует программные ошибки. Когда Иван получает новую программу, он классифицирует все возможные ошибки по ( n ) категориям. Каждый день он обнаруживает ровно одну ошибку в программе и добавляет информацию о ней и её категории в таблицу. Когда он находит ошибки во всех категориях, он называет программу отвратительной, публикует эту таблицу на своей домашней странице и полностью забывает о программе.
Две компании, Macrosoft и Microhard, находятся в жесткой конкуренции. Microhard хочет снизить продажи одной программы Macrosoft. Они нанимают Ивана, чтобы доказать, что рассматриваемая программа отвратительна. Однако у Ивана сложная задача. Эта новая программа имеет ( s ) подсистем, и нахождение ошибок всех типов в каждой подсистеме заняло бы слишком много времени, прежде чем цель могла бы быть достигнута. Поэтому Иван и Microhard договорились использовать более простой критерий — Иван должен найти хотя бы одну ошибку в каждой подсистеме и хотя бы одну ошибку каждой категории.
Macrosoft знает об этих планах и хочет оценить время, необходимое Ивану, чтобы назвать её программу отвратительной. Это важно, потому что компания скоро выпускает новую версию, чтобы она могла скорректировать свои планы и выпустить её быстрее. Никто не будет интересоваться мнением Ивана о надежности устаревшей версии.
Ошибка, найденная в программе, может относиться к любой категории с равной вероятностью. Аналогично, ошибка может быть найдена в любой данной подсистеме с равной вероятностью. Любая конкретная ошибка не может принадлежать двум разным категориям или происходить одновременно в двух разных подсистемах. Количество ошибок в программе почти бесконечно, поэтому вероятность нахождения новой ошибки какой-либо категории в какой-либо подсистеме не уменьшается после нахождения любого количества ошибок этой категории в этой подсистеме.
Найдите среднее время (в днях работы Ивана), необходимое, чтобы назвать программу отвратительной.
Входные данные
Вход содержит два целых числа, ( n ) и ( s ) (( 0 < n, s 1000 )).
Выходные данные
Выведите ожидание количества рабочих дней Ивана, необходимых, чтобы назвать программу отвратительной, с точностью до 4 знаков после запятой.