Graduation Guarantee

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

Gustav is studying to become an interpreter. In this line of work, knowing several languages is a must, and Gustav is already fluent in French, Mandarin, Nahuatl and even Finnish. But there is one language that Gustav struggles with: Norwegian. Before Gustav can graduate, he must complete the infamous Norwegian Conclusive Proficiency Check.

This exam consists of nn yes/no questions. Answering correctly gives +1+1 point, answering incorrectly gives 1-1 point, and not answering gives 00 points. To pass the exam, at least kk points are needed. For each question, Gustav has a guess that he knows is correct with probability p_ip\_i (0.5p_i10.5 \leq p\_i \leq 1). Note that p_i0.5p\_i \geq 0.5, because otherwise guessing the opposite would be better.

What is the maximum possible probability of passing the exam, assuming we carefully choose which questions to answer and which ones to leave unanswered? Note that unlike a programming contest, the exam does not have instant feedback. So Gustav will answer the questions, hand in his answers, and only later be told the results.

입력

The first line contains the two integers nn and kk (1kn50001 \leq k \leq n \leq 5000). The second line contains nn real numbers p_ip\_i (0.5p_i1.00.5 \leq p\_i \leq 1.0). These numbers will have at most 66 digits after the decimal point.

출력

Output the probability that we pass the exam. Your answer will be considered correct if it has an absolute or relative error of at most 10610^{-6}.