#include<math.h>
using namespace std;
long long k;
long long n;
long long x;
void d(long long xx,long long kk){
int a=0;
for(int i=1;i<=xx;i++){
a+=pow(2,i);
}
if(a==kk){
for(int i=xx;i>=1;i--){
int daan=pow(2,i);
cout<<daan<<" ";
}
}
else{
long long cishu;
long long shu=kk-pow(2,xx);
int daan=pow(2,xx);
cout<<daan<<" ";
for(int i=1;i<=kk;i++){
if(pow(2,i)>shu){
cishu=i-1;
break;
}
}
d(cishu,shu);
}
}
int main(){
cin>>k;
for(int i=0;i<k;i++){
if(k==2*i+1){
cout<<"-1";
n=1;
break;
}
}
if(n!=1){
for(int i=1;i<=k;i++){
if(pow(2,i)>k){
x=i-1;
break;
}
}
d(x,k);
}
}```