#include<bits/stdc++.h>
using namespace std;
int a[1145],m,n,ans=1145,res;
void ss()
{
res++;
//cout<<m<<" ";
if(m==0)
ans=min(ans,n);
else if(res<=10000000&&m>0)
for(int i=20;i>=1;i--)
{
m-=a[i];
n++;
ss();
n--;
m+=a[i];
}
}
int main()
{
cin>>m;
for(int i=1;i<=20;i++)
a[i]=i*i*i*i;
ss();
cout<<ans;
return 0;
}
m为偶时对,为奇时错