#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;
}