#include "stdio.h" int a[11],b[11]; int k,flag,n,s; void DFS(); int main() { int i; while(scanf("%d",&n),n) { flag=0; a[0]=1; k=0; s=10; DFS(); printf("%d",b[0]); for(i=1;i<=s;i++) printf(" %d",b[i]); printf(" "); } return 0; } void DFS() { int i; if(a[k]==n) { if(k<s) { for(i=0;i<=k;i++) b[i]=a[i]; s=k; } return ; } else if(k>=s || a[k]>n) return ; for( i=k; i>=0; --i ) { k++; a[k]=a[k-1]+a[i]; DFS(); k--; } }