#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include<string.h>
#define tr(c,it) for(typeof(c.begin()) it=c.begin();it!=c.end();++it)
#define all(c) c.begin(),c.end()
#define mod 1000000007
#define itor(c) typeof(c.begin())
#define ll long long
#define vi vector<int>
#define vs vector<string>
#define si set<int>
#define msi multiset<int>
#define ii pair<int,int>
#define sii set<ii>
#define vii vector<ii>
#define vvi vector<vi>
#define pb push_back
#define mp make_pair
using namespace std;
int main() {
long long i,j,k,n,sum,arr[100];
arr[0]=1;
arr[1]=3;
for(i=2;;++i)
{
arr[i]=arr[i-1]*2+arr[i-2];
if(arr[i]>1000000000000000LL)
break;
}
cin>>n;
vector<long long> left,right;
while(n!=0)
{
for(i=0;;++i)
{
sum=0;
for(j=i;j>=0;j-=2)
sum+=arr[j];
if(sum>=abs(n))
break;
}
if(n>0)
{
left.pb(arr[i]);
n-=arr[i];
}
else if(n<0)
{
right.pb(arr[i]);
n+=arr[i];
}
}
for(i=0;i<left.size();++i)
cout<<left[i]<<endl;
cout<<endl;
for(i=0;i<right.size();++i)
cout<<right[i]<<endl;
return 0;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGxpc3Q+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxkZXF1ZT4KI2luY2x1ZGUgPHN0YWNrPgojaW5jbHVkZSA8Yml0c2V0PgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2luY2x1ZGUgPG51bWVyaWM+CiNpbmNsdWRlIDx1dGlsaXR5PgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGN0aW1lPgojaW5jbHVkZTxzdHJpbmcuaD4KI2RlZmluZSB0cihjLGl0KSBmb3IodHlwZW9mKGMuYmVnaW4oKSkgaXQ9Yy5iZWdpbigpO2l0IT1jLmVuZCgpOysraXQpCiNkZWZpbmUgYWxsKGMpIGMuYmVnaW4oKSxjLmVuZCgpCiNkZWZpbmUgbW9kIDEwMDAwMDAwMDcKI2RlZmluZSBpdG9yKGMpIHR5cGVvZihjLmJlZ2luKCkpCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSB2cyB2ZWN0b3I8c3RyaW5nPgojZGVmaW5lIHNpIHNldDxpbnQ+CiNkZWZpbmUgbXNpIG11bHRpc2V0PGludD4KI2RlZmluZSBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgc2lpIHNldDxpaT4KI2RlZmluZSB2aWkgdmVjdG9yPGlpPgojZGVmaW5lIHZ2aSB2ZWN0b3I8dmk+CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7Cglsb25nIGxvbmcgaSxqLGssbixzdW0sYXJyWzEwMF07CglhcnJbMF09MTsKCWFyclsxXT0zOwoJZm9yKGk9Mjs7KytpKQoJewoJCWFycltpXT1hcnJbaS0xXSoyK2FycltpLTJdOwoJCWlmKGFycltpXT4xMDAwMDAwMDAwMDAwMDAwTEwpCgkJYnJlYWs7Cgl9CgljaW4+Pm47Cgl2ZWN0b3I8bG9uZyBsb25nPiBsZWZ0LHJpZ2h0OwoJd2hpbGUobiE9MCkKCXsKICAgIAlmb3IoaT0wOzsrK2kpCiAgICAJewogICAgICAgIAlzdW09MDsKICAgICAgICAJZm9yKGo9aTtqPj0wO2otPTIpCiAgICAgICAgICAgIAlzdW0rPWFycltqXTsKICAgIAkgCWlmKHN1bT49YWJzKG4pKQogICAgICAgICAgICAJYnJlYWs7CiAgICAJfQogICAgCWlmKG4+MCkKICAgIAl7CiAgICAgICAgCWxlZnQucGIoYXJyW2ldKTsKICAgICAgICAJbi09YXJyW2ldOwogICAgCX0KICAgIAllbHNlIGlmKG48MCkKICAgIAl7CiAgICAgICAgCXJpZ2h0LnBiKGFycltpXSk7CiAgICAgICAgCW4rPWFycltpXTsKICAgIAl9Cgl9Cglmb3IoaT0wO2k8bGVmdC5zaXplKCk7KytpKQoJCWNvdXQ8PGxlZnRbaV08PGVuZGw7Cgljb3V0PDxlbmRsOwoJZm9yKGk9MDtpPHJpZ2h0LnNpemUoKTsrK2kpCgkJY291dDw8cmlnaHRbaV08PGVuZGw7CglyZXR1cm4gMDsKfQo=