advanced logic puzzle