#include
#include
#include
#include
#include
#include
#include
#include
void spread(int p){
if(t[p].add){
t[p2].pre+=t[p].add(t[p2].r-t[p2].l+1);
t[p2+1].pre+=t[p].add(t[p2+1].r-t[p2+1].l+1);
t[p2].add+=t[p].add;
t[p2+1].add+=t[p].add;
t[p].add=0;
}
}
long long ans=0;
void change(int p,int x,int y,int z){
if(x<=t[p].l && y>=t[p].r){
t[p].pre+=(long long)z*(t[p].r-t[p].l+1);
t[p].add+=z;
return;
}
spread§;
int mid=t[p].l+t[p].r>>1;
if(x<=mid) change(p2,x,y,z);
if(y>mid) change(p2+1,x,y,z);
t[p].pre=t[p2].pre+t[p2+1].pre;
}
long long ask(int p,int x,int y){
if(x<=t[p].l && y>=t[p].r) return t[p].pre;
spread§;
int mid=t[p].l+t[p].r>>1;
long long ans=0;
if(x<=mid) ans+=ask(p2,x,y);
if(y>mid) ans+=ask(p2+1,x,y);
return ans;
}
int vis[200020];
long long ksm(long long a,long long b,long long p){
long long ans=1;
while(b){
if(b&1)
ans=(ansa);
a=(aa);
b=b>>1;
}
return ans;
}
int main(){
while(cin>>n){
for(int i=1;i<=15;i++){
if(ksm(i,i,0x7f7f7f7f)>n){
cout<<i-1<<endl;
break;
}
if(i==15){
cout<<15<<endl;
break;
}
}
}
return 0;
}
输入N, 输出满足k^k <= N 的 k的个数