#include using namespace std; int main() { int N, F; long double ponds[100000 + 1], times[100000 + 1]; int in[100000 + 1]; while ( scanf("%d%d", &N, &F) == 2 ) { long double total, min, tmp; int tsum, j; for ( int i = 0; i < N; i++ ) { scanf("%Lf", & ponds[i]); ponds[i] /= F; in[i] = 1; } total = times[0] = ponds[0]; for ( int i = 1; i < N; i++) { j = i-1; min = ponds[i]; tsum = 1; while ( j >= 0 ) { tmp = times[j] + (ponds[i] - times[j])/(in[j] + 1); tsum += in[j]; if ( tmp <= min ) { in[i] = tsum; min = tmp; } j -= in[j]; } times[i] = min; total = max(total, min); } printf("%Lf %Lf\n",times[N - 1], total); } return 0; }