import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class Cascade { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); String pocetLine = bf.readLine(); while (pocetLine != null) { String[] par = pocetLine.split(" "); int N = Integer.parseInt(par[0]); int F = Integer.parseInt(par[1]); double[] Z = new double[N]; double[] cas = new double[N]; String[] C= bf.readLine().split(" "); for (int i = 0; i < N; i++) { Z[i] = Integer.parseInt(C[i]); cas[i] = 0; } boolean dal = true; while (dal) { dal = false; double p = 0; for (int i = 0; i < N; i++) { if (Z[i] >= F+p) { Z[i] = Z[i] - (F+p); cas[i] = cas[i] +1; p = 0; } else { cas[i] = cas[i] + Z[i]/(double)(F+p); double pom = Z[i]; Z[i] = Math.max(0, Z[i] - (F+p)); p = Math.abs(pom - (F+p)); } if (Z[i] != 0) { dal = true; } } } double max = -1; for (int i = 0; i < N; i++) { if (cas[i] > max) { max = cas[i]; } } System.out.println(cas[N-1] +" " + max); } pocetLine = bf.readLine(); } }