#include using namespace std; struct uns_t {} uns; template auto vec(Element init, Head arg, Args ...args) { if constexpr (sizeof...(Args) == 0) return std::vector(arg, init); else return std::vector(arg, vec(init, args...)); } template auto vec(uns_t, Head arg, Args ...args) { return vec(Element(), arg, args...); } int main() { int64_t n; cin >> n; int64_t ans = INT64_MAX; for (int64_t i = 1; i * i * i <= n; ++i) { if (n % i) continue; for (int64_t j = 1; j * j <= n / i; ++j) { if (n / i % j) continue; ans = min(ans, i + j + n / i / j - 3); } } cout << ans << ' ' << n - 1 << endl; }