#include <cstdio>
#include <algorithm>
int d[11];
// rotate: 41.391 ms / ? ms
void rotate(const int size)
{
int tot = 1, i, j, st = 0, ed, *pst = d, *pi, *pj, *pe = d+size;
for (i = 0; i < size; i++) d[i] = i+1, tot *= i+1;
i = st; j = (st ? st-1 : size-1); while (i != j) { printf("%d ", d[i++]); if (i == size) i = 0; } printf("%d\n", d[j]);
// pi = pst; pj = (pst==d ? d+(size-1) : pst-1); while (pi != pj) {
// printf("%d ", *pi); if (*++pi == 0) i = 0;
// } printf("%d\n", d[j]);
while (--tot)
{
if (d[st] == size) {
i = size - 1;
ed = st + 1; if (ed == size) ed = 0;
while (d[ed] == i) {
ed = ed + 1; if (ed == size) ed = 0;
i--;
}
d[st] = d[ed];
while (i < size) {
st = st + 1; if (st == size) st = 0;
d[st] = ++i;
}
}
st++; if (st == size) st = 0;
i = st; j = (st ? st-1 : size-1); while (i != j) { printf("%d ", d[i++]); if (i == size) i = 0; } printf("%d\n", d[j]);
}
}
int main()
{
// rotate(5);
rotate(9);
// rotate(11);
return 0;
}