import math def find_min_max_planes(N): # Compute Tmax Tmax = N - 1 # Function to generate all factors of a number M >=1 def get_factors(M): factors = set() for i in range(1, int(math.isqrt(M)) + 1): if M % i == 0: factors.add(i) factors.add(M // i) return sorted(factors) min_sum = float('inf') max_cube_root = int(round(N ** (1/3))) + 1 for p in range(1, max_cube_root + 1): if N % p != 0: continue M = N // p factors_M = get_factors(M) for q in factors_M: if q < p: continue if q > math.isqrt(M): continue if M % q != 0: continue r = M // q if r < q: continue current_sum = p + q + r if current_sum < min_sum: min_sum = current_sum if min_sum == float('inf'): # In case N is prime, min_sum is 1+1+N, Tmin = (1+1+N) -3 = N-1 Tmin = Tmax else: Tmin = min_sum - 3 return Tmin, Tmax # Read input N = int(input()) Tmin, Tmax = find_min_max_planes(N) print(Tmin, Tmax)