#include <iostream>

using namespace std;

void k(int a, int* b)
{
	bool flag[10] = {};
	bool isFirst = true;

	for (int i = 9; i >= 0; i--)
	{
		if (a - b[i] >= 0)
		{
			a = a - b[i];
			flag[i] = true;
		}
	}

	for (int i = 0; i < 10; i++)
	{
		if (flag[i])
		{
			if (isFirst)
			{
				isFirst = false;
			}
			else
			{
				cout << " ";
			}
			cout << b[i];
		}
	}
	cout << endl;
}
int main()
{
	int a;
	int weights[10];

	weights[0] = 1;
	for (int i = 1; i < 10; i++)
	{
		weights[i] = weights[i - 1] * 2;
	}

	while (cin >> a)
	{
		k(a, begin(weights));
	}

	return 0;
}
