// written in the D programming language
import std.algorithm;
import std.array;
import std.random;
import std.range;
import std.stdio;
void main ()
{
immutable int n = 3;
immutable int steps = n ^^ n;
int [n] p;
int [int [n]] d;
foreach (step; 0..steps)
{
p[] = n.iota.array;
int v = step;
foreach (i; 0..n)
{
int j = v % n;
v /= n;
swap (p[i], p[j]);
}
d[p] += 1;
}
writefln ("%(%s %s\n%)", d);
}
Ly8gd3JpdHRlbiBpbiB0aGUgRCBwcm9ncmFtbWluZyBsYW5ndWFnZQppbXBvcnQgc3RkLmFsZ29yaXRobTsKaW1wb3J0IHN0ZC5hcnJheTsKaW1wb3J0IHN0ZC5yYW5kb207CmltcG9ydCBzdGQucmFuZ2U7CmltcG9ydCBzdGQuc3RkaW87Cgp2b2lkIG1haW4gKCkKewoJaW1tdXRhYmxlIGludCBuID0gMzsKCWltbXV0YWJsZSBpbnQgc3RlcHMgPSBuIF5eIG47CglpbnQgW25dIHA7CglpbnQgW2ludCBbbl1dIGQ7Cglmb3JlYWNoIChzdGVwOyAwLi5zdGVwcykKCXsKCQlwW10gPSBuLmlvdGEuYXJyYXk7CgkJaW50IHYgPSBzdGVwOwoJCWZvcmVhY2ggKGk7IDAuLm4pCgkJewoJCQlpbnQgaiA9IHYgJSBuOwoJCQl2IC89IG47CgkJCXN3YXAgKHBbaV0sIHBbal0pOwoJCX0KCQlkW3BdICs9IDE7Cgl9Cgl3cml0ZWZsbiAoIiUoJXMgJXNcbiUpIiwgZCk7Cn0K
[1, 2, 0] 5
[2, 0, 1] 4
[0, 2, 1] 5
[2, 1, 0] 4
[0, 1, 2] 4
[1, 0, 2] 5