from math import log2 N = int(input()) # 1^0+0=1 """if N==1: print(1) exit() """ ans = 10**10 def is_ok(arg, j): return pow(arg, j) <= N def meguru_bisect(ng, ok, j): while (abs(ok - ng) > 1): mid = (ok + ng) // 2 if is_ok(mid, j): ok = mid else: ng = mid return ok for j in range(int(log2(N))+1): i = meguru_bisect(N, 1, j) k = N-pow(i, j) # print(i, j, k) ans = min(ans, i+j+k) print(ans)