#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define IT(c) typeof((c).begin()) #define For(i, a, b) for(int (i) = int(a); i < int(b); ++i) #define rep(x, n) For(x,0,n) #define foreach(i, c) for(IT(c) i = (c).begin(); i != (c).end(); ++i) #define sz(a) int((a).size()) #define pb push_back #define mp make_pair #define F first #define S second #define setmax(a,b) a = max(a,b) typedef vector Vi; typedef vector > Vvi; typedef vector Vs; typedef pair Pi; double DP[5005][1005][2]; int main(){ while(1){ int n; cin>>n; if(n==0) break; int c, t; cin>>c>>t; rep(i, n+1) rep(k,t+1) rep(j,2) DP[i][k][j] = -1e100; DP[0][t][0] = log10(c); rep(i,n){ double v; cin>>v; v = log10(v); rep(j, t+1){ setmax(DP[i+1][j][0], DP[i][j][0]); if(j > 0){ setmax(DP[i+1][j-1][0], DP[i][j][1] + v); } setmax(DP[i+1][j][1], DP[i][j][1]); if(j > 0){ setmax(DP[i+1][j-1][1], DP[i][j][0] - v); } } } double res = 0; rep(i, t+1) res = max(res, DP[n][i][0]); cout<