#include <bits/stdc++.h>
using namespace std;
int x[1000000];
int main() {
  int n;
  while (cin >> n) {
    stack<int> st;
    while (st.size()) {
      st.pop();
    }
    memset(x, 0, sizeof(x));
    for (int i = 0; i < n; i++) {
      if (st.size() == 0) {
        st.push(1);
      } else if (st.top() == 1) {
        st.pop();
        st.push(2);
      } else {
        st.push(1);
      }
      while (st.size() >= 2) {
        int num = st.top();
        st.pop();
        if ((st.top() - num) == 0) {
          st.pop();
          st.push(num + 1);
        } else {
          st.push(num);
          break;
        }
      }
    }
    int num = st.size();
    for (int i = 0; i < num; i++) {
      x[i] = st.top();
      st.pop();
    }
    cout << x[num - 1];
    for (int i = num - 2; i >= 0; i--) {
      printf(" %d", x[i]);
    }
    cout << endl;
  }
  return 0;
}
