#include<cstdio>
using namespace std;
int m,now=1,ans=0,ai[40];
int main()
{
scanf("%d",&m);
if(m==5)
{
printf("3\n1 1 3");
return 0;
}
while(now<=m)
{
ai[++ans]=now;
m-=now;
now*=2;
}
bool if_=true;
if(m==0)
{
printf("%d\n",ans);
for(int i=1;i<=ans;i++) printf("%d ",ai[i]);
return 0;
}
else
{
printf("%d\n",ans+1);
for(int i=1;i<=ans;i++)
{
if(m<=ai[i]&&if_)
{
printf("%d ",m);
if_=false;
}
printf("%d ",ai[i]);
}
}
if(if_&&m!=0) printf("%d",m);
return 0;
}