#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define For(i,a,n) for(int i =a ; i < n ; ++i ) #define all(x) (x).begin(),(x).end() #define n(x) (int)(x).size() #define pb(x) push_back(x) using namespace std; typedef long long ll; typedef pair pii; const int maxn = 50000; int n; int t=100*1000; int dl[maxn*2]; int dr[maxn*2]; int ja[maxn]; int r(int i , int j) { return j-i+n-1; } int l(int i, int j) { return i+j; } ll k; int it; int main() { ios::sync_with_stdio(false); srand(4131); cin >> n; For(i,0,n) ja[i]=i; do { random_shuffle(ja,ja+n); it=0; For(i,0,2*n) dl[i]=dr[i]=0; For(i,0,n) { dl[l(i,ja[i])]++; dr[r(i,ja[i])]++; } k=0; For(i,0,n) k-=dr[r(i,ja[i])]-1; For(i,0,n) k-=dl[l(i,ja[i])]-1; k/=2; while(it0|| (!(rand()%(5))) && (k < -1000000)) { swap(ja[f],ja[s]); k+=fi+si; } else { dr[r(s,ja[s])]++; dl[l(s,ja[s])]++; dl[l(s,ja[f])]--; dr[r(s,ja[f])]--; dr[r(f,ja[f])]++; dl[l(f,ja[f])]++; dl[l(f,ja[s])]--; dr[r(f,ja[s])]--; } } } } }while(k); const int DBG=0; if(DBG) { For(i,0,n) { For(j,0,ja[i]) cout << "."; cout << "Q"; For(j,ja[i]+1,n) cout << "."; cout << endl; } } else { For(i,0,n) cout << ja[i]+1 << endl; } return 0; } // //el psy congroo //