anchor.diff:              do i = 1, 3
                   read *, ps(j)%s(i, :)
               end do
  +            call print_piece(ps(j)%s)
  +            print *
           end do
       end subroutine
   
  
positive.code:                      rots%d(0, 0, 0, 0))
              rots%s(:, :, 1) = push_to_one(ps(n)%s)
              puts = all_puts(cube, rots, n)
              print *, "Number of first puts: ", puts%length
          else
              rots = all_rots(ps(n)%s)
              puts = all_puts(cube, rots, n)
  
negative.code:     type(piece), allocatable :: ps(:)
      type(list)               :: sols
  
      call init_mrot(mrot)
      cube = 0
      call read_pieces(ps)
      sols%length = 0
      allocate(sols%d(3, 3, 3, 128))
  
      call search(ps, size(ps), cube, sols)
  
      write (*, "(a, i6)") "Solutions: ", sols%length
      call print_cubes(sols)
  
  