#include <iostream>
#include <bitset>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
std::cin.tie(NULL);
int k;
int sum = 0;
int num = 0;
std::cin >> k;
while (sum < k) {
num++;
std::bitset<32> b(num);
sum += b.count();
}
int overflow = sum - k;
std::vector<int> res;
while (num > 0) {
bool skip = false;
if (overflow > 0) {
std::bitset<32> b(num);
if (b.count() <= overflow) {
overflow -= b.count();
} else {
res.push_back(num);
}
} else {
res.push_back(num);
}
num--;
}
cout << res.size() << "\n";
bool first = true;
for (int num : res) {
if (!first) {
std::cout << " ";
}
first = false;
std::cout << num ;
}
}