#include using namespace std; #define FOR(i,l,r) for(int i = int(l);i < int(r);i++) template bool chmax(T& a,const T& b){ return a < b ? (a = b,true) : false; } template bool chmin(T& a,const T& b){ return b < a ? (a = b,true) : false; } typedef long long ll; int N,K; void rec(int l,int r,vector& ans) { if(r <= l) return; if(r - l == 1){ ans.push_back(l); return; } ans.push_back((l + r) / 2); rec(l,(l + r) / 2,ans); rec((l + r) / 2,r,ans); } int main() { scanf("%d",&K); N = 1 << K; vector ans; FOR(i,max(1,N - K * 3),N){ ans.push_back(i); } rec(1,max(1,N - K * 3),ans); FOR(i,0,ans.size()){ printf("%d%s",ans [i],i + 1 == ans.size() ? "\n" : " "); } return 0; }