import java.util.Scanner; public class Main { public static int m = 100000; public static int [][]stock = new int [m][3]; public static int tail = 0; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int l = 0; boolean sigh = false; while (l*l*l < n){ l++; } while (!sigh){ find(l); sigh = cal(n); l = l + 1; } System.out.println((l-1) + " " + (n-1)); } public static void find(int l){ tail = 0; for (int i = 0; i < l+1; i++){ for (int j = 0; j < i+1; j++){ if (i + j <= l){ int k = l - i - j; if (k <= j){ stock[tail][0] = i+1; stock[tail][1] = j+1; stock[tail++][2] = k+1; } } } } } public static boolean cal(int n){ for (int i = 0; i < tail; i++){ if (stock[i][0]*stock[i][1]*stock[i][2] == n){ return true; } } return false; } }