Parse puzzle from string