import java.util.Scanner; public class Cascade { /** * @param args */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int N = sc.nextInt(); int F = sc.nextInt(); int[] C = new int[N]; double[] Z = new double[N]; double[] cas = new double[N]; for (int i = 0; i < N; i++) { C[i] = sc.nextInt(); Z[i] = 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); } } }