fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let n: usize = n.trim().parse().unwrap(); let mut result = n; for j in 2.. { let i = ((n as f64).powf(1. / j as f64) + 1e-10).floor() as usize; if i == 1 { break; } let k = n - i.pow(j); result = result.min(i + j as usize + k); } println!("{}", result); }