import math def find_Tmin(N): min_sum = float('inf') max_a = int(N ** (1/3)) + 2 # Adding 2 to ensure we cover the cube root for a in range(1, max_a + 1): if N % a != 0: continue M = N // a sqrt_M = int(math.isqrt(M)) b = None # Find the largest b <= sqrt(M) and >= a for i in range(sqrt_M, 0, -1): if M % i == 0 and i >= a: b = i break if b is None: continue c = M // b current_sum = a + b + c if current_sum < min_sum: min_sum = current_sum return min_sum - 3 if min_sum != float('inf') else 0 N = int(input()) Tmax = N - 1 Tmin = find_Tmin(N) print(Tmin, Tmax)