Find a path that covers all circles, with the following rules:
- Only vertical and horizontal moves
- Pass 1 time on each circle
- Start and end on the black circles
A. Itai, C. H. Papadimitriou, and J. L. Szwarcfiter, Hamilton paths in grid graphs, SIAM Journal on Computing, vol. 11, no. 4, pp. 676–686, 1982.