#include <iostream>
using namespace std;
void makesegtree(int *arr,int *segtree,int st,int en,int pos)
{
if(st==en)
{segtree[pos]=arr[st];
}
else{
int mid=(st+en)/2;
makesegtree(arr,segtree,st,mid,2*pos);
makesegtree(arr,segtree,mid+1,en,2*pos+1);
segtree[pos]=segtree[2*pos+1]+segtree[2*pos+2];
}
}
int main()
{
int n;
cin>>n;
int arr[n];
for(int i=0;i<n;i++)
arr[i]==i+1;
int *segtree;
segtree= new int[4*n+1];
makesegtree(arr,segtree,0,n-1,0);
for(int i=0;i<4*n+1;i++)
cout<<segtree[i]<<" ";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCAgbWFrZXNlZ3RyZWUoaW50ICphcnIsaW50ICpzZWd0cmVlLGludCBzdCxpbnQgZW4saW50IHBvcykKewogICAgaWYoc3Q9PWVuKQogICAge3NlZ3RyZWVbcG9zXT1hcnJbc3RdOwogICAgfQogICAgZWxzZXsKICAgICAgICBpbnQgbWlkPShzdCtlbikvMjsKICAgICAgICBtYWtlc2VndHJlZShhcnIsc2VndHJlZSxzdCxtaWQsMipwb3MpOwogICAgICAgIG1ha2VzZWd0cmVlKGFycixzZWd0cmVlLG1pZCsxLGVuLDIqcG9zKzEpOwogICAgICAgIHNlZ3RyZWVbcG9zXT1zZWd0cmVlWzIqcG9zKzFdK3NlZ3RyZWVbMipwb3MrMl07CiAgICB9Cn0KCmludCBtYWluKCkKewppbnQgbjsKY2luPj5uOwppbnQgYXJyW25dOwpmb3IoaW50IGk9MDtpPG47aSsrKQphcnJbaV09PWkrMTsKaW50ICpzZWd0cmVlOwpzZWd0cmVlPSBuZXcgaW50WzQqbisxXTsKbWFrZXNlZ3RyZWUoYXJyLHNlZ3RyZWUsMCxuLTEsMCk7CmZvcihpbnQgaT0wO2k8NCpuKzE7aSsrKQpjb3V0PDxzZWd0cmVlW2ldPDwiICI7CnJldHVybiAwOwp9Cg==