import std.stdio;
import std.ascii;
import std.range;
import std.array;
import std.functional;
import std.algorithm;
import std.conv;
import std.container;
import std.math;
import std.numeric;
import std.string;
import std.c.string;
import std.random;
import std.regex;
import std.typecons;

int E;
bool input() {
    scanf("%d\n", &E);
    return E != 0;
}

void solve() {
    int ans = int.max;
    for (int z = 0; z <= 100; z++) {
        for (int y = 0; y <= 1000; y++) {
            int x = E - (z * z * z) - (y * y);
            if (x < 0) continue;
            ans = min(ans, x + y + z);
        }
    }
    writeln(ans);
}

void main() {
    while (input) solve;
}