Andrey needs one more problem to conduct a programming contest. He has *n* friends who are always willing to help. He can ask some of them to come up with a contest problem. Andrey knows one value for each of his fiends — the probability that this friend will come up with a problem if Andrey asks him.

Help Andrey choose people to ask. As he needs only one problem, Andrey is going to be really upset if no one comes up with a problem or if he gets more than one problem from his friends. You need to choose such a set of people that maximizes the chances of Andrey not getting upset.
The first line contains a single integer *n* (1 ≤ *n* ≤ 100) — the number of Andrey's friends. The second line contains *n* real numbers *p*<sub class="lower-index">*i*</sub> (0.0 ≤ *p*<sub class="lower-index">*i*</sub> ≤ 1.0) — the probability that the *i*-th friend can come up with a problem. The probabilities are given with at most 6 digits after decimal point.
import decimal
n = int(input())
hi = input()
hi = hi.replace(',', '.', hi.count(','))
hehe = hi.split(" ")
for i in range(len(hehe)):
    hehe[i] = float(hehe[i])
hehe = sorted(hehe, reverse=True)

if len(hehe) == 1:
        print(hehe[0])
        exit()
if max(hehe) >= 0.5:
    print(max(hehe))
else:
    hi = []
    for i in range(1,len(hehe)):
        cay = 0.0
        for j in range(i+1):
            hihi = hehe[j]
            for k in range(i+1):
                if j == k:
                    continue
                hihi*=1-hehe[k]
            cay+=hihi
        hi.append(cay)
    print(str(max(hi))[:min(len(str(max(hi))), 15)])