#include <vector>
#include <string>
#include <iostream>
#include <iomanip>
#include <numeric>
using namespace std;
vector<bool> v;
bool test(vector<bool>&b, int n, vector<int>&r)
{
if (n == b.size())
{
for(auto i: r) cout << setw(3) << i; cout << endl;
return true;
}
int sum = accumulate(r.begin(),r.end(),0);
for(int j =0; j < b.size(); ++j)
{
if (b[j] == false)
{
if (sum % (j+1) != 0) continue;
b[j] = true;
r.push_back(j+1);
bool res = test(b,n+1,r);
r.pop_back();
b[j] = false;
if (res) return true;
}
}
return false;
}
int main(int argc, const char * argv[])
{
int N;
cin >> N;
for(int i = 0; i < N; ++i) v.push_back(false);
vector<int> r;
test(v,0,r);
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPG51bWVyaWM+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdmVjdG9yPGJvb2w+IHY7Cgpib29sIHRlc3QodmVjdG9yPGJvb2w+JmIsIGludCBuLCB2ZWN0b3I8aW50PiZyKQp7CiAgICBpZiAobiA9PSBiLnNpemUoKSkKICAgIHsKICAgICAgICBmb3IoYXV0byBpOiByKSBjb3V0IDw8IHNldHcoMykgPDwgaTsgY291dCA8PCBlbmRsOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgaW50IHN1bSA9IGFjY3VtdWxhdGUoci5iZWdpbigpLHIuZW5kKCksMCk7CiAgICBmb3IoaW50IGogPTA7IGogPCBiLnNpemUoKTsgKytqKQogICAgewogICAgICAgIGlmIChiW2pdID09IGZhbHNlKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKHN1bSAlIChqKzEpICE9IDApIGNvbnRpbnVlOwogICAgICAgICAgICBiW2pdID0gdHJ1ZTsKICAgICAgICAgICAgci5wdXNoX2JhY2soaisxKTsKICAgICAgICAgICAgYm9vbCByZXMgPSB0ZXN0KGIsbisxLHIpOwogICAgICAgICAgICByLnBvcF9iYWNrKCk7CiAgICAgICAgICAgIGJbal0gPSBmYWxzZTsKICAgICAgICAgICAgaWYgKHJlcykgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGZhbHNlOwp9CgoKaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiBhcmd2W10pCnsKICAgIGludCBOOwogICAgY2luID4+IE47CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgTjsgKytpKSB2LnB1c2hfYmFjayhmYWxzZSk7CgogICAgdmVjdG9yPGludD4gcjsKICAgIHRlc3QodiwwLHIpOwoKfQo=