move:{[n;a;b;c]:[1=n;,a,c;_f .'((n-1;a;b;c);(1;a;c;b);(n-1;b;c;a))]} move[4;1;3;2] (1 2 1 3 3 1 1 3 3 1 3 2 2 3 1 3 3 1 3 2 2 3 3 2 2 3 2 1 1 2)