#include #include #include #include std::vector v; void set(int min,int max) { if(min == 1 && max == 3){ v.push_back(3); v.push_back(2); v.push_back(1); return; } if(min == max){ v.push_back(min); return; } int middle = (min+max)/2; v.push_back(middle); set(min,middle-1); set(middle+1,max); } int main() { int K; std::cin >> K; set(1,pow(2,K)-1); for(int i = 0;i < v.size();i++) std::cout << v[i] << ' '; std::cout << std::endl; return 0; }