#include <bits/stdc++.h>
using namespace std;

int main() {
    int n; cin >> n;

    vector<int> d;

    while(n) {
        d.push_back(n % 2);
        n /= 2;
    }
    
    vector<int> ans;
    int sz = d.size();
    reverse(d.begin(), d.end());
    
    int p = 1;
    ans.push_back(1);

    for(int i = 0; i + 1 < sz; ++i) {
        p *= 2;
        if(d[i + 1] == 1) {
            ans.push_back(p); 
        } else {
            vector<int> aux = ans;
            for(auto temp : aux) {
                ans.push_back(p + temp);
            }
        }
    }

    int k = ans.size();
    cout << k << "\n";
        
    for(auto temp : ans)
        cout << temp << " ";
}