#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin>>n;
    vector<int>q(n+1);
    q[1]=1;
    cout<<q[1]<<" ";
    for(int i=1;i<=n-1;i++){
        q[i+1]=q[i]^(i^(i+1));
        cout<<q[i+1]<<" ";
    }
    return 0;
}
//其实只要循环输出i就可行
//不知道为什么用递推初始值就1可以,其他的通过不了,有谁帮我解惑?