puzzle.h