# Author: Udit "luctivud" Gupta @ https://www.linkedin.com/in/udit-gupta-1b7863135/ # import math; from collections import * import sys; from functools import reduce import time; from itertools import groupby # sys.setrecursionlimit(10**6) # def input() : return sys.stdin.readline() def get_ints() : return map(int, input().strip().split()) def get_list() : return list(get_ints()) def get_string() : return list(input().strip().split()) def printxsp(*args) : return print(*args, end="") def printsp(*args) : return print(*args, end=" ") DIRECTIONS = [(+0, +1), (+0, -1), (+1, +0), (+1, -1)] NEIGHBOURS = [(-1, -1), (-1, +0), (-1, +1), (+0, -1),\ (+1, +1), (+1, +0), (+1, -1), (+0, +1)] # MAIN >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # for _test_ in range(int(input())): a = int(input()) ans = 0 temp = a while temp > 0: temp //= 2 ans += 1 i = 3 while (i**2) <= a: temp = a j = 0 while temp > 0: temp //= i j += 1 ans = min(ans, i*j) i += 2 print(ans)