#include<bits/stdc++.h>
using namespace std;
int main(){
  int n;
  while(cin>>n,n){
  cout<<n<<endl;
  vector<int>v;
  v.push_back(n);
  set<vector<int> >se;
  while(1){LL:;
    for(int i=v.size()-1;i>=0;i--){
      if(v[i]>1){
        if(!i||v[i]>=3){
          int h=v[i]-1,p=0;
          while(v.size()>i)v.erase(v.end()-1);
          for(int j=0;j<v.size();j++)p+=v[j];
          while(1){
            v.push_back(h);
            p+=h;
            while(p+h>n)h--;
            if(!h)break;
          }
          se.insert(v);
          goto L;
        }
        else{
          v[i]--;
          if(v.size()>i+1)v[i+1]++;
          else v.push_back(1);
          goto L;
        }
      }
    }
    break;
    L:;
    for(int i=0;i<v.size()-1;i++)
      if(v[i]<v[i+1])goto LL;
    for(int i=0;i<v.size();i++){
      if(i)cout<<' ';
      cout<<v[i];
    }
    cout<<endl;
  }}
}