Draw a snake in the grid, whose head and tail (if given) are greyed squares. Snake doesn't touch itself, not even diagonally. Number outside shows the count of square covered by snake body in the corresponding row or column. Additionally snake passes through every square having circle. It must turn at every black circle and snake can not turn at any white circle.