У вас є колода з N \times M карт. Кожна карта в колоді має ранг. Діапазон рангів — від до , і колода містить карт кожного рангу.
Карту з рангом ми позначаємо як .
Ви можете випадковим чином взяти руку з карт з колоди. Якщо рука відповідає заданому шаблону, нараховується бонус. Опис шаблону:
hand_pattern = card_pattern1 ' ' card_pattern2 ' ' ... ' ' card_patternL
card_pattern = '*' | var_plus
var_plus = variable | var_plus '+'
variable = 'a' | 'b' | 'c'Рука відповідає hand_pattern, якщо кожен card_pattern у hand_pattern покриває окрему карту з руки.
card_pattern
Якщо card_pattern — зірочка ('*'), він підходить до будь-якої карти. Символи 'a', 'b' і 'c' позначають змінні, і всі входження однієї змінної покривають карти одного рангу. card_pattern зі змінною, після якої йде одна чи декілька '+' підходить до карт, де ранг дорівнює сумі базового рангу та кількості плюсів. Якщо в hand_pattern є card_pattern зі змінною і певною кількістю плюсів, він має містити і всі шаблони з меншою (включно з нулем) кількістю плюсів. Наприклад, якщо 'a+++' є у hand_pattern, то 'a', 'a+' і 'a++' також мають бути у hand_pattern.
Немає обмежень для того, яким рангам відповідають різні змінні. Наприклад, 'a' і 'b' можуть відповідати як одному, так і різним рангам.
Приклади hand_pattern. Шаблон
a * b a bвідповідає руці:
3 3 10 10 9де 'a' і 'b' означають і (або і ). Цей шаблон також відповідає руці:
3 3 3 3 9У цьому випадку і 'a', і 'b' означають . Шаблон
a a+ a++ a+++ a++++відповідає руці:
4 5 6 7 8Тут 'a' має означати .
Ваше завдання — написати програму, яка обчислює ймовірність, що випадково витягнена рука відповідає заданому hand_pattern.
Вхід — послідовність наборів даних. Формат кожного набору:
card\_pattern_1 card\_pattern_2 ... card\_pattern_L
Перший рядок містить три додатні цілі , , . — кількість карт кожного рангу, — кількість рангів, — кількість карт у руці. Обмеження:
Другий рядок — опис hand_pattern.
Кінець введення позначається рядком з трьох нулів, розділених пробілом.
Для кожного набору даних виведіть у рядок десятковий дріб — ймовірність, що рука відповідає hand_pattern.
Похибка відповіді не повинна перевищувати 10^{-8}.
У відповіді не повинно бути інших символів.
Приклад 1