#include <iostream>
#include <vector>
using namespace std;
const int maxN=2e5;
int N;
vector<int> v;
int main() {
cin>>N;
for(int i=1;i<=N;i++)
v.push_back(i);
while( v.size()>1 ){
vector<int> survive;
for(int i=0;i<v.size();i++){
if( i%2==1 )
cout<<v[i]<<' ';
else survive.push_back(v[i]);
}
int L=v.size();
v.clear();
// 原本有奇數個 -> 從最後一個生存者當作新起點
if( L%2==1 ){
//cout<<survive.back();
v.push_back( survive.back() );
survive.pop_back();
}
for(int i:survive)
v.push_back(i);
}
cout<<v.front();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IG1heE49MmU1OwppbnQgTjsKdmVjdG9yPGludD4gdjsKCmludCBtYWluKCkgewoJY2luPj5OOwoJZm9yKGludCBpPTE7aTw9TjtpKyspCgkJdi5wdXNoX2JhY2soaSk7CgkJCgl3aGlsZSggdi5zaXplKCk+MSApewoJCXZlY3RvcjxpbnQ+IHN1cnZpdmU7CgkJCgkJZm9yKGludCBpPTA7aTx2LnNpemUoKTtpKyspewoJCQlpZiggaSUyPT0xICkKCQkJCWNvdXQ8PHZbaV08PCcgJzsKCQkJZWxzZSBzdXJ2aXZlLnB1c2hfYmFjayh2W2ldKTsKCQl9CgkJaW50IEw9di5zaXplKCk7CgkJdi5jbGVhcigpOwoJCS8vIOWOn+acrOacieWlh+aVuOWAiyAtPiDlvp7mnIDlvozkuIDlgIvnlJ/lrZjogIXnlbbkvZzmlrDotbfpu54KCQlpZiggTCUyPT0xICl7CgkJCS8vY291dDw8c3Vydml2ZS5iYWNrKCk7CgkJCXYucHVzaF9iYWNrKCBzdXJ2aXZlLmJhY2soKSApOwoJCQlzdXJ2aXZlLnBvcF9iYWNrKCk7CgkJfQoJCWZvcihpbnQgaTpzdXJ2aXZlKQoJCQl2LnB1c2hfYmFjayhpKTsKCX0JCgljb3V0PDx2LmZyb250KCk7Cn0=