#include using namespace std; int main(){ int N,A,K,ans=0,range=3e5; set s; auto comp=[](vector a,vector b){ return a[1],vector>,decltype(comp)> q{comp}; queue> temp; cin>>N; s.insert(0); q.push((vector){0,range}); for(int i=0;i>A; auto j=s.lower_bound(A); if(j!=s.end()&&*j==A){ continue; } --j; K=A-*j; while(!q.empty()&&q.top()[1]>K){ vector v=q.top(); s.insert(v[0]+K); temp.push((vector){v[0]+K,v[1]-K}); temp.push((vector){v[0],K}); q.pop(); } while(!temp.empty()){ q.push(temp.front()); temp.pop(); } ++ans; } cout<