import math n, k = map(int, input().split()) a = [int(x) for x in input().split()] def eval(dph): hps = k - dph time = 0 for x in a: time += math.ceil(x/dph) / hps return time def is_convex(lst): if len(lst) == 0: return True a = lst[0] downward = True for x in lst[1:]: if x < a: if downward: pass else: return False elif x > a: if downward: downward = True else: pass return True def ternary_search(l, r): if r - l < 10: w = 10000000000000000000000000000000000000 s = 0 for x in range(l, r + 1): if eval(x) < w: w = eval(x) s = x return s third = (r - l) // 3 m1 = l + third m2 = r - third a = eval(m1) b = eval(m2) if a < b: return ternary_search(l, m2) else: return ternary_search(m1, r) w = ternary_search(1, k - 1) print(w, k - w)