$a=[0,1]; $b=[1,0]; $c=[-1,0]; $x=$y=0;$z=1; $h{"0,0"}=1; for(<>=~/./g){ $d=$$_; $x+=$d->[0]; $y+=$d->[1]; $z+=!$h{"$x,$y"}++; if($d->[0]==0){ $d->[1]*=-1; }else{ if($_ eq 'a'){ ($b,$c)=($c,$b); $b->[0]*=-1; $b->[1]*=-1; $c->[0]*=-1; $c->[1]*=-1; $a->[0]*=-1; } if($_ eq 'b'){ ($c,$a)=($a,$c); $c->[0]*=-1; $c->[1]*=-1; $a->[0]*=-1; $a->[1]*=-1; $b->[0]*=-1; } if($_ eq 'c'){ ($a,$b)=($b,$a); $a->[0]*=-1; $a->[1]*=-1; $b->[0]*=-1; $b->[1]*=-1; $c->[0]*=-1; } } } print$z;