Набори для ставок#4221

Набори для ставок

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

Ваше місцеве казино (яке розташоване тут, у Каліфорнії, на певній відстані) вирішило запровадити нову гру на ставки. Гравцю надається картка з таблицею, що має рядків і стовпців. Кожен елемент таблиці відповідає підкиданню монети з ймовірністю p_{ij} випасти орлом. Усі підкидання монет є незалежними одне від одного. Гравець повинен вибрати наборів з елементів, причому кожен набір має містити рівно один елемент з кожного стовпця, і кожен елемент використовується рівно один раз. За кожен вибраний набір, де всі монет випали орлом, гравець виграє долар. Казино проявляє незвичну щедрість, тому в рамках просування цієї нової гри вони роздають по одній картці кожному відвідувачу. Оскільки вам нічого втрачати, ви вирішили спробувати цю гру. Як ви можете максимізувати свої очікувані виграші з цієї картки?

Вхідні дані

Вхідні дані складаються з кількох тестових випадків. Кожен тестовий випадок починається з рядка з двома цілими числами та , 1 \le N \le 100, 1 \le M \le 10, розділеними пробілом. Далі йдуть рядків з числами, розділеними пробілами, що позначають елементи p_{ij} таблиці. Вхідні дані завершуються одним рядком з N = M = 0, який не слід обробляти.

Вихідні дані

Для кожного тестового випадку виведіть один рядок з максимальними очікуваними виграшами з даної таблиці, точними до десяткових знаків.

Приклади

Приклад 1

Loading
Loading