N = gets.to_i ans = N 2.upto(Math.log2(N).floor) do |j| ok = 2 ng = N while (ok - ng).abs >= 2 x = (ok + ng) / 2 if x ** j <= N ok = x else ng = x end end k = N - ok ** j v = ok + j + k ans = v if ans > v end puts ans