#! /usr/bin/perl -0777

$_='


 $k=<> 
 $m=255 
 $n=256 

 $c="     " 

sub n 		substr				 $b, $_[0], 1			 & chr 0177 	
sub i 		  $v = $k = "" 
         map 		 $k .=  "." x 				$_-$v-1			  . $s 
                $v=$_ 	 sort 		 $a <=> $b 	 @_ 
          $k =~ s/\.*//;
              $k  	
sub b 		 n $u  	
sub c 		 n $u-1 	
sub l 		 n $u-$n 	
sub o 		 n $u-257 	

  $s = " " 
  @t = unpack C .length				$k			, $k 
  $e = shift @t 
  $f = shift @t 

 
sub k 		 $_ % 5 * $_[0] + 				int				 $_ /5			*$_[0] << 8			 	

  map 		
    if 				 $u 			 		
      $d .= chr $_ 
      $u =0 
      $j++ 
      if 				@0 !=1			 		
        @p = 				i @o			 
        map 		
          push @p,  i 				 @o =  &		 				
                  q  		 map 		 $_>>8|				 $_&$m			<<8	  @_ 	,
                  q  		 map 		 $_>>8|				~$_&$m			<<8	  @_ 	
          			 [$_]  	 				@o			 			
        	  split //,1110111 
        push @a, [ grep
          		 $y= $a cmp 				$b=$_			 
            $a=$_ 
            $y
          	 sort @p ] 
        @o=							 
      	
    	 elsif				 $_ == 15 			 		
      $u = 1 
    	 else 		
      push @o, k 1 
      push @q, k 3 if !$e && $j==$f 
    	
  	  				map 		  				 $_ >> 4, $_ & 15			    	   @t			, 0 

 q u 		
    for				$i=1+$n+$_[0] 
       $i<=$f*$n+$_[0] 
         $i+=$n			 		substr				 $b, $i+1, $e			 = $s x $e 	
   	


  $b = "\200" x 				$n**2			 
  if 				@q			 		
    $e = 3 
    $f = 4 
    map 		 u $_	 @q 
    $e = 15 
    $f = 10 
  	 else 		
    $f++ 
    u 0
  	


sub h 		
    print "[$z;0H" 
        for				 $i=1 
             $i<$e+4 
             $i++			 		
      for				$j=$n 
          $j<$n*				$f+1			 
          $j+= $n			 		
          $u=$i+$j 
          $h=substr $c, 				c ne o			*2 + 				l ne o			*1 + 				b ne l			*8 + 				b ne c			*4, 1 
          print $h, 				b eq &c ?" ": ""			 
       	
       print "\n" 
    	
  	

sub r 		
   local				$p,$o,$w			 
   $r++ 
   while				substr				$d,$p			 =~ s/[^\0]/chr ord				$&			-1/e			 		
      map 		
        if				 				$w			 = $b =~ m/^				[^\0]*?			$_/ 			 		
          				$o = $_			 =~ s/./ $& eq $s ? chr $r : $s/ge 
          $b |= 				$s x length $w			 . $o 
          h 
          if  				$d =~ m/^\0+$/			 		
            $z=				$z+$e+3			%				24-$e			 
          	
          &r 
          $b ^= 				$s x length $w			 . $o 
          h 
      	 	  @		$a[$p+=length $`]	 
      $d =~ s/				.		$p								.			/$1 . chr ord				$2			+1/e 
      $p++ 
    	
    $r-- 
  	

  r


';


s| q| sub|g;
s| $|; |mg;
s|				|(|g;
s|			|)|g;
s|		|{|g;
s|	|}|g;
s|p\(|p})|;

eval  $_
