vector<ll> a;
bool Isok(){
for(ll i=0;i<a.size();i++){
if(a[i]>4) return false;
}
return true;
}
a.push_back(n);
while(Isok()!=true){
vector<ll>::iterator it;
for(it=a.begin();it!=a.end();it++){
if(*it%2==0&&*it>4){
a.push_back(*it/2);
a.push_back(*it/2);
it=a.erase(it);
}
if(*it%2!=0&&*it>3){
a.push_back(floor(*it/2));
a.push_back(ceil(*it/2));
it=a.erase(it);
}
}
}