#include <iostream>
#include <vector>
using namespace std;

void show(vector<int> a){
	for(int i=0 ; i<(int)a.size() ; i++ ){
		cout << a[i];
		if( i == (int)a.size()-1 )
			cout << endl;
		else
			cout << " ";
	}
}

int sigma(vector<int> a){
	int val=0;
	for(int i=0 ; i<(int)a.size() ; i++ )
		val += a[i];
	return val;
}

void f(vector<int> a, int n, int k){
	for(int i=(n-sigma(a)) ; i > 0 ; i-- ){
		if( k == 0 || a[k-1] >= i ){
			a.push_back( i );
			if( sigma(a) == n ){
				show( a );
			}else{
				f( a , n , k+1 );
			}
			a.pop_back();
		}
	}
}

int main(){
	int n;
	vector<int> a;
	
	while( cin >> n , n ){
		f( a , n , 0 );
	}
}