puzzle.py