anchor.diff:          end do
       end subroutine
   
  +    subroutine print_piece(p)
  +        integer, intent(in) :: p(:, :)
  +        integer             :: i
  +        character(len=20)   :: f_str
  +
  +        write (f_str, "(a, i3, a)") "(", size(p, 2), "i2)"
  +        do i = 1, 3
  +            write (*, f_str) p(i, :)
  +        end do
  +    end subroutine
  +
       subroutine read_pieces(ps)
           type(piece), allocatable, intent(inout) :: ps(:)
           character(len=20)                       :: name_
  
positive.code:             do i = 1, 3
                  read *, ps(j)%s(i, :)
              end do
          end do
      end subroutine
  
  
negative.code:                      rots%d(0, 0, 0, 0))
              rots%s(:, :, 1) = push_to_one(ps(n)%s)
              puts = all_puts(cube, rots, n)
          else
              rots = all_rots(ps(n)%s)
              puts = all_puts(cube, rots, n)
  