%  X 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
% Y+------------------------------------------+
% 0|WW  WW  WW  WW  WW  WW  WW  WW  WW  WW  WW|
% 1|          WW                          WWWW|
% 2|        WW      WW  WW  WW  WW  WW      WW|
% 3|  WW                              WW  WWWW|
% 4|    E*  WW  WW  WW  WW  WW  WW  WW  WW    |
% 5|      WW  WW                          WWWW|
% 6|WW              WW  WW  WW  WW  WW  WW  WW|
% 7|          WW  WW                      WWWW|
% 8|    WW  WW          WW  WW  WW  WW      WW|
% 9|  WW  WW      WW  WW              WW  WWWW|
% 0|            WW  WW      WW      WW      WW|
% 1|  WW  WW      WW      WW  WW          WWWW|
% 2|        WW          WW      WW  WW  WW  WW|
% 3|      WW  WW      WW          WW      WWWW|
% 4|WW          WW  WW          WW          WW|
% 5|      WW              WW  WW      WW  WWWW|
% 6|    WW  WW  WW      WW          WW      WW|
% 7|      WW      WW      WW      WW      WWWW|
% 8|WW              WW  X   WW  WW          WW|
% 9|          WW                      WW  WWWW|
%  +------------------------------------------+
% Path length is 24

shortest_path(24).

square(1, 0, unknown).
square(3, 0, unknown).
square(5, 0, unknown).
square(7, 0, unknown).
square(9, 0, unknown).
square(11, 0, unknown).
square(13, 0, unknown).
square(15, 0, unknown).
square(17, 0, unknown).
square(19, 0, unknown).
square(0, 1, unknown).
square(1, 1, unknown).
square(2, 1, unknown).
square(3, 1, unknown).
square(4, 1, unknown).
square(6, 1, unknown).
square(7, 1, unknown).
square(8, 1, unknown).
square(9, 1, unknown).
square(10, 1, unknown).
square(11, 1, unknown).
square(12, 1, unknown).
square(13, 1, unknown).
square(14, 1, unknown).
square(15, 1, unknown).
square(16, 1, unknown).
square(17, 1, unknown).
square(18, 1, unknown).
square(0, 2, unknown).
square(1, 2, unknown).
square(2, 2, unknown).
square(3, 2, unknown).
square(5, 2, unknown).
square(6, 2, unknown).
square(7, 2, unknown).
square(9, 2, unknown).
square(11, 2, unknown).
square(13, 2, unknown).
square(15, 2, unknown).
square(17, 2, unknown).
square(18, 2, unknown).
square(19, 2, unknown).
square(0, 3, unknown).
square(2, 3, unknown).
square(3, 3, unknown).
square(4, 3, unknown).
square(5, 3, unknown).
square(6, 3, unknown).
square(7, 3, unknown).
square(8, 3, unknown).
square(9, 3, unknown).
square(10, 3, unknown).
square(11, 3, unknown).
square(12, 3, unknown).
square(13, 3, unknown).
square(14, 3, unknown).
square(15, 3, unknown).
square(16, 3, unknown).
square(18, 3, unknown).
square(0, 4, unknown).
square(1, 4, unknown).
square(2, 4, entrance).
square(3, 4, unknown).
square(5, 4, unknown).
square(7, 4, unknown).
square(9, 4, unknown).
square(11, 4, unknown).
square(13, 4, unknown).
square(15, 4, unknown).
square(17, 4, unknown).
square(19, 4, unknown).
square(20, 4, unknown).
square(21, 4, unknown).
square(0, 5, unknown).
square(1, 5, unknown).
square(2, 5, unknown).
square(4, 5, unknown).
square(6, 5, unknown).
square(7, 5, unknown).
square(8, 5, unknown).
square(9, 5, unknown).
square(10, 5, unknown).
square(11, 5, unknown).
square(12, 5, unknown).
square(13, 5, unknown).
square(14, 5, unknown).
square(15, 5, unknown).
square(16, 5, unknown).
square(17, 5, unknown).
square(18, 5, unknown).
square(1, 6, unknown).
square(2, 6, unknown).
square(3, 6, unknown).
square(4, 6, unknown).
square(5, 6, unknown).
square(6, 6, unknown).
square(7, 6, unknown).
square(9, 6, unknown).
square(11, 6, unknown).
square(13, 6, unknown).
square(15, 6, unknown).
square(17, 6, unknown).
square(19, 6, unknown).
square(0, 7, unknown).
square(1, 7, unknown).
square(2, 7, unknown).
square(3, 7, unknown).
square(4, 7, unknown).
square(6, 7, unknown).
square(8, 7, unknown).
square(9, 7, unknown).
square(10, 7, unknown).
square(11, 7, unknown).
square(12, 7, unknown).
square(13, 7, unknown).
square(14, 7, unknown).
square(15, 7, unknown).
square(16, 7, unknown).
square(17, 7, unknown).
square(18, 7, unknown).
square(0, 8, unknown).
square(1, 8, unknown).
square(3, 8, unknown).
square(5, 8, unknown).
square(6, 8, unknown).
square(7, 8, unknown).
square(8, 8, unknown).
square(9, 8, unknown).
square(11, 8, unknown).
square(13, 8, unknown).
square(15, 8, unknown).
square(17, 8, unknown).
square(18, 8, unknown).
square(19, 8, unknown).
square(0, 9, unknown).
square(2, 9, unknown).
square(4, 9, unknown).
square(5, 9, unknown).
square(6, 9, unknown).
square(8, 9, unknown).
square(10, 9, unknown).
square(11, 9, unknown).
square(12, 9, unknown).
square(13, 9, unknown).
square(14, 9, unknown).
square(15, 9, unknown).
square(16, 9, unknown).
square(18, 9, unknown).
square(0, 10, unknown).
square(1, 10, unknown).
square(2, 10, unknown).
square(3, 10, unknown).
square(4, 10, unknown).
square(5, 10, unknown).
square(7, 10, unknown).
square(9, 10, unknown).
square(10, 10, unknown).
square(11, 10, unknown).
square(13, 10, unknown).
square(14, 10, unknown).
square(15, 10, unknown).
square(17, 10, unknown).
square(18, 10, unknown).
square(19, 10, unknown).
square(0, 11, unknown).
square(2, 11, unknown).
square(4, 11, unknown).
square(5, 11, unknown).
square(6, 11, unknown).
square(8, 11, unknown).
square(9, 11, unknown).
square(10, 11, unknown).
square(12, 11, unknown).
square(14, 11, unknown).
square(15, 11, unknown).
square(16, 11, unknown).
square(17, 11, unknown).
square(18, 11, unknown).
square(0, 12, unknown).
square(1, 12, unknown).
square(2, 12, unknown).
square(3, 12, unknown).
square(5, 12, unknown).
square(6, 12, unknown).
square(7, 12, unknown).
square(8, 12, unknown).
square(9, 12, unknown).
square(11, 12, unknown).
square(12, 12, unknown).
square(13, 12, unknown).
square(15, 12, unknown).
square(17, 12, unknown).
square(19, 12, unknown).
square(0, 13, unknown).
square(1, 13, unknown).
square(2, 13, unknown).
square(4, 13, unknown).
square(6, 13, unknown).
square(7, 13, unknown).
square(8, 13, unknown).
square(10, 13, unknown).
square(11, 13, unknown).
square(12, 13, unknown).
square(13, 13, unknown).
square(14, 13, unknown).
square(16, 13, unknown).
square(17, 13, unknown).
square(18, 13, unknown).
square(1, 14, unknown).
square(2, 14, unknown).
square(3, 14, unknown).
square(4, 14, unknown).
square(5, 14, unknown).
square(7, 14, unknown).
square(9, 14, unknown).
square(10, 14, unknown).
square(11, 14, unknown).
square(12, 14, unknown).
square(13, 14, unknown).
square(15, 14, unknown).
square(16, 14, unknown).
square(17, 14, unknown).
square(18, 14, unknown).
square(19, 14, unknown).
square(0, 15, unknown).
square(1, 15, unknown).
square(2, 15, unknown).
square(4, 15, unknown).
square(5, 15, unknown).
square(6, 15, unknown).
square(7, 15, unknown).
square(8, 15, unknown).
square(9, 15, unknown).
square(10, 15, unknown).
square(12, 15, unknown).
square(14, 15, unknown).
square(15, 15, unknown).
square(16, 15, unknown).
square(18, 15, unknown).
square(0, 16, unknown).
square(1, 16, unknown).
square(3, 16, unknown).
square(5, 16, unknown).
square(7, 16, unknown).
square(8, 16, unknown).
square(9, 16, unknown).
square(11, 16, unknown).
square(12, 16, unknown).
square(13, 16, unknown).
square(14, 16, unknown).
square(15, 16, unknown).
square(17, 16, unknown).
square(18, 16, unknown).
square(19, 16, unknown).
square(0, 17, unknown).
square(1, 17, unknown).
square(2, 17, unknown).
square(4, 17, unknown).
square(5, 17, unknown).
square(6, 17, unknown).
square(8, 17, unknown).
square(9, 17, unknown).
square(10, 17, unknown).
square(12, 17, unknown).
square(13, 17, unknown).
square(14, 17, unknown).
square(16, 17, unknown).
square(17, 17, unknown).
square(18, 17, unknown).
square(1, 18, unknown).
square(2, 18, unknown).
square(3, 18, unknown).
square(4, 18, unknown).
square(5, 18, unknown).
square(6, 18, unknown).
square(7, 18, unknown).
square(9, 18, unknown).
square(10, 18, exit).
square(11, 18, unknown).
square(13, 18, unknown).
square(15, 18, unknown).
square(16, 18, unknown).
square(17, 18, unknown).
square(18, 18, unknown).
square(19, 18, unknown).
square(0, 19, unknown).
square(1, 19, unknown).
square(2, 19, unknown).
square(3, 19, unknown).
square(4, 19, unknown).
square(6, 19, unknown).
square(7, 19, unknown).
square(8, 19, unknown).
square(9, 19, unknown).
square(10, 19, unknown).
square(11, 19, unknown).
square(12, 19, unknown).
square(13, 19, unknown).
square(14, 19, unknown).
square(15, 19, unknown).
square(16, 19, unknown).
square(18, 19, unknown).
