$i = 'A'; # the class label
for $n (@temp) {
next if defined $arrangements{$n}; # already classified it.
@n = split /,/, $n;
@classmates = ( $n, join(',', reverse @n) ); # n and its mirror
@classmates = (@classmates, &M1(@n)); # Maz 1
@classmates = (@classmates, &M2(@n)); # Maz 2
@classmates = (@classmates, &M3(@n)); # Maz 3
&ClassReunion( $i, \@classmates );
$i++;
}
####
sub M1 { map join(',', @_[$_..$#_], @_[0..$_-1]), 1..$#_ }
##
##
sub M2 {
my %temp;
@temp{(1..@_)} = @_;
%temp = reverse %temp;
return join(',', @temp{(1..@_)});
}