#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
ll m,num=0,x[1000010];
int main(){
cin>>m;
while(m){
x[++num]=(m+1)/2;
m/=2;
}
cout<<num<<endl;
for(int i=num;i>=1;i--){
cout<<x[i]<<' ';
}
cout<<endl;
return 0;
}
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
ll m,num=0,x[1000010];
int main(){
cin>>m;
while(m){
x[++num]=(m+1)/2;
m/=2;
}
cout<<num<<endl;
for(int i=num;i>=1;i--){
cout<<x[i]<<' ';
}
cout<<endl;
return 0;
}