#include <math.h>
#include <iostream>
using namespace std;
int blen(int d){
	for(int k=0;k<=31;k++){
		if(d>=pow(2,k-1)&&d<pow(2,k)){
			return k;
			break;
		}
	}
}
int bdown(int y){
	return y-pow(2,blen(y)-1);
}
int bds(int i,int j){
	int bin=i;
	for(int g=1;g<=j;g++){
		bin=bdown(bin);
	}
	return bin;
}
int bminus(int u){
	for(int h=0;h<=blen(u);h++){
		if(bds(u,h)-bds(u,h+1)!=0){
		cout<<bds(u,h)-bds(u,h+1)<<endl;
		}
	}
	return 0;
}
int main(){
	int e;
	cout<<"输入一个数,以输出2进制拆分"<<endl; 
	cin>>e;
	bminus(e);
	return 0;
}
bye