#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;

int a[30];

void show(int n){
  for(int i=0;i<n-1;i++){
    printf("%d ",a[i]);
  }
  printf("%d\n",a[n-1]);
}

void dfs(int x,int n,int ma){
  if(x==0) show(n);
  else{
    for(int i=min(x,ma);i>=1;i--){
      a[n] = i;
      dfs(x-i,n+1,i);
    }
  }
}

bool solve(){
  int n;
  scanf("%d",&n);
  if(n==0) return false;
  dfs(n,0,n);
  return true;
}

int main(){
  while(1) if(!solve()) return 0;
}