solve( 0, 0): start solve( 0, 0): let's go up solve(-1, 0): start solve(-1, 0): we're blocked! Returning false. solve( 0, 0): let's go right solve( 0, 1): start solve( 0, 1): let's go up solve(-1, 1): start solve(-1, 1): we're blocked! Returning false. solve( 0, 1): let's go right solve( 0, 2): start solve( 0, 2): let's go up solve(-1, 2): start solve(-1, 2): we're blocked! Returning false. solve( 0, 2): let's go right solve( 0, 3): start solve( 0, 3): we're blocked! Returning false. solve( 0, 2): let's go down solve( 1, 2): start solve( 1, 2): let's go up solve( 0, 2): start solve( 0, 2): we're blocked! Returning false. solve( 1, 2): let's go right solve( 1, 3): start solve( 1, 3): let's go up solve( 0, 3): start solve( 0, 3): we're blocked! Returning false. solve( 1, 3): let's go right solve( 1, 4): start solve( 1, 4): let's go up solve( 0, 4): start solve( 0, 4): let's go up solve(-1, 4): start solve(-1, 4): we're blocked! Returning false. solve( 0, 4): let's go right solve( 0, 5): start solve( 0, 5): let's go up solve(-1, 5): start solve(-1, 5): we're blocked! Returning false. solve( 0, 5): let's go right solve( 0, 6): start solve( 0, 6): we're blocked! Returning false. solve( 0, 5): let's go down solve( 1, 5): start solve( 1, 5): we're blocked! Returning false. solve( 0, 5): let's go left solve( 0, 4): start solve( 0, 4): we're blocked! Returning false. solve( 0, 5): *** need to backtrack solve( 0, 4): let's go down solve( 1, 4): start solve( 1, 4): we're blocked! Returning false. solve( 0, 4): let's go left solve( 0, 3): start solve( 0, 3): we're blocked! Returning false. solve( 0, 4): *** need to backtrack solve( 1, 4): let's go right solve( 1, 5): start solve( 1, 5): we're blocked! Returning false. solve( 1, 4): let's go down solve( 2, 4): start solve( 2, 4): let's go up solve( 1, 4): start solve( 1, 4): we're blocked! Returning false. solve( 2, 4): let's go right solve( 2, 5): start solve( 2, 5): we're blocked! Returning false. solve( 2, 4): let's go down solve( 3, 4): start solve( 3, 4): let's go up solve( 2, 4): start solve( 2, 4): we're blocked! Returning false. solve( 3, 4): let's go right solve( 3, 5): start solve( 3, 5): let's go up solve( 2, 5): start solve( 2, 5): we're blocked! Returning false. solve( 3, 5): let's go right solve( 3, 6): start solve( 3, 6): let's go up solve( 2, 6): start solve( 2, 6): let's go up solve( 1, 6): start solve( 1, 6): let's go up solve( 0, 6): start solve( 0, 6): we're blocked! Returning false. solve( 1, 6): let's go right solve( 1, 7): start solve( 1, 7): let's go up solve( 0, 7): start solve( 0, 7): we're blocked! Returning false. solve( 1, 7): let's go right solve( 1, 8): start solve( 1, 8): let's go up solve( 0, 8): start solve( 0, 8): we're blocked! Returning false. solve( 1, 8): let's go right solve( 1, 9): start solve( 1, 9): let's go up solve( 0, 9): start solve( 0, 9): let's go up solve(-1, 9): start solve(-1, 9): we're blocked! Returning false. solve( 0, 9): let's go right solve( 0, 10): start solve( 0, 10): let's go up solve(-1, 10): start solve(-1, 10): we're blocked! Returning false. solve( 0, 10): let's go right solve( 0, 11): start solve( 0, 11): let's go up solve(-1, 11): start solve(-1, 11): we're blocked! Returning false. solve( 0, 11): let's go right solve( 0, 12): start solve( 0, 12): let's go up solve(-1, 12): start solve(-1, 12): we're blocked! Returning false. solve( 0, 12): let's go right solve( 0, 13): start solve( 0, 13): we're blocked! Returning false. solve( 0, 12): let's go down solve( 1, 12): start solve( 1, 12): let's go up solve( 0, 12): start solve( 0, 12): we're blocked! Returning false. solve( 1, 12): let's go right solve( 1, 13): start solve( 1, 13): we're blocked! Returning false. solve( 1, 12): let's go down solve( 2, 12): start solve( 2, 12): we're blocked! Returning false. solve( 1, 12): let's go left solve( 1, 11): start solve( 1, 11): we're blocked! Returning false. solve( 1, 12): *** need to backtrack solve( 0, 12): let's go left solve( 0, 11): start solve( 0, 11): we're blocked! Returning false. solve( 0, 12): *** need to backtrack solve( 0, 11): let's go down solve( 1, 11): start solve( 1, 11): we're blocked! Returning false. solve( 0, 11): let's go left solve( 0, 10): start solve( 0, 10): we're blocked! Returning false. solve( 0, 11): *** need to backtrack solve( 0, 10): let's go down solve( 1, 10): start solve( 1, 10): we're blocked! Returning false. solve( 0, 10): let's go left solve( 0, 9): start solve( 0, 9): we're blocked! Returning false. solve( 0, 10): *** need to backtrack solve( 0, 9): let's go down solve( 1, 9): start solve( 1, 9): we're blocked! Returning false. solve( 0, 9): let's go left solve( 0, 8): start solve( 0, 8): we're blocked! Returning false. solve( 0, 9): *** need to backtrack solve( 1, 9): let's go right solve( 1, 10): start solve( 1, 10): we're blocked! Returning false. solve( 1, 9): let's go down solve( 2, 9): start solve( 2, 9): we're blocked! Returning false. solve( 1, 9): let's go left solve( 1, 8): start solve( 1, 8): we're blocked! Returning false. solve( 1, 9): *** need to backtrack solve( 1, 8): let's go down solve( 2, 8): start solve( 2, 8): let's go up solve( 1, 8): start solve( 1, 8): we're blocked! Returning false. solve( 2, 8): let's go right solve( 2, 9): start solve( 2, 9): we're blocked! Returning false. solve( 2, 8): let's go down solve( 3, 8): start solve( 3, 8): let's go up solve( 2, 8): start solve( 2, 8): we're blocked! Returning false. solve( 3, 8): let's go right solve( 3, 9): start solve( 3, 9): we're blocked! Returning false. solve( 3, 8): let's go down solve( 4, 8): start solve( 4, 8): let's go up solve( 3, 8): start solve( 3, 8): we're blocked! Returning false. solve( 4, 8): let's go right solve( 4, 9): start solve( 4, 9): let's go up solve( 3, 9): start solve( 3, 9): we're blocked! Returning false. solve( 4, 9): let's go right solve( 4, 10): start solve( 4, 10): we're blocked! Returning false. solve( 4, 9): let's go down solve( 5, 9): start solve( 5, 9): let's go up solve( 4, 9): start solve( 4, 9): we're blocked! Returning false. solve( 5, 9): let's go right solve( 5, 10): start solve( 5, 10): let's go up solve( 4, 10): start solve( 4, 10): we're blocked! Returning false. solve( 5, 10): let's go right solve( 5, 11): start solve( 5, 11): let's go up solve( 4, 11): start solve( 4, 11): we're blocked! Returning false. solve( 5, 11): let's go right solve( 5, 12): start solve( 5, 12): let's go up solve( 4, 12): start solve( 4, 12): let's go up solve( 3, 12): start solve( 3, 12): let's go up solve( 2, 12): start solve( 2, 12): we're blocked! Returning false. solve( 3, 12): let's go right solve( 3, 13): start solve( 3, 13): we're blocked! Returning false. solve( 3, 12): let's go down solve( 4, 12): start solve( 4, 12): we're blocked! Returning false. solve( 3, 12): let's go left solve( 3, 11): start solve( 3, 11): let's go up solve( 2, 11): start solve( 2, 11): we're blocked! Returning false. solve( 3, 11): let's go right solve( 3, 12): start solve( 3, 12): we're blocked! Returning false. solve( 3, 11): let's go down solve( 4, 11): start solve( 4, 11): we're blocked! Returning false. solve( 3, 11): let's go left solve( 3, 10): start solve( 3, 10): let's go up solve( 2, 10): start solve( 2, 10): let's go up solve( 1, 10): start solve( 1, 10): we're blocked! Returning false. solve( 2, 10): let's go right solve( 2, 11): start solve( 2, 11): we're blocked! Returning false. solve( 2, 10): let's go down solve( 3, 10): start solve( 3, 10): we're blocked! Returning false. solve( 2, 10): let's go left solve( 2, 9): start solve( 2, 9): we're blocked! Returning false. solve( 2, 10): *** need to backtrack solve( 3, 10): let's go right solve( 3, 11): start solve( 3, 11): we're blocked! Returning false. solve( 3, 10): let's go down solve( 4, 10): start solve( 4, 10): we're blocked! Returning false. solve( 3, 10): let's go left solve( 3, 9): start solve( 3, 9): we're blocked! Returning false. solve( 3, 10): *** need to backtrack solve( 3, 11): *** need to backtrack solve( 3, 12): *** need to backtrack solve( 4, 12): let's go right solve( 4, 13): start solve( 4, 13): we're blocked! Returning false. solve( 4, 12): let's go down solve( 5, 12): start solve( 5, 12): we're blocked! Returning false. solve( 4, 12): let's go left solve( 4, 11): start solve( 4, 11): we're blocked! Returning false. solve( 4, 12): *** need to backtrack solve( 5, 12): let's go right solve( 5, 13): start solve( 5, 13): we're blocked! Returning false. solve( 5, 12): let's go down solve( 6, 12): start solve( 6, 12): we're blocked! Returning false. solve( 5, 12): let's go left solve( 5, 11): start solve( 5, 11): we're blocked! Returning false. solve( 5, 12): *** need to backtrack solve( 5, 11): let's go down solve( 6, 11): start solve( 6, 11): we're blocked! Returning false. solve( 5, 11): let's go left solve( 5, 10): start solve( 5, 10): we're blocked! Returning false. solve( 5, 11): *** need to backtrack solve( 5, 10): let's go down solve( 6, 10): start solve( 6, 10): we're blocked! Returning false. solve( 5, 10): let's go left solve( 5, 9): start solve( 5, 9): we're blocked! Returning false. solve( 5, 10): *** need to backtrack solve( 5, 9): let's go down solve( 6, 9): start solve( 6, 9): we're blocked! Returning false. solve( 5, 9): let's go left solve( 5, 8): start solve( 5, 8): we're blocked! Returning false. solve( 5, 9): *** need to backtrack solve( 4, 9): let's go left solve( 4, 8): start solve( 4, 8): we're blocked! Returning false. solve( 4, 9): *** need to backtrack solve( 4, 8): let's go down solve( 5, 8): start solve( 5, 8): we're blocked! Returning false. solve( 4, 8): let's go left solve( 4, 7): start solve( 4, 7): let's go up solve( 3, 7): start solve( 3, 7): we're blocked! Returning false. solve( 4, 7): let's go right solve( 4, 8): start solve( 4, 8): we're blocked! Returning false. solve( 4, 7): let's go down solve( 5, 7): start solve( 5, 7): let's go up solve( 4, 7): start solve( 4, 7): we're blocked! Returning false. solve( 5, 7): let's go right solve( 5, 8): start solve( 5, 8): we're blocked! Returning false. solve( 5, 7): let's go down solve( 6, 7): start solve( 6, 7): we're blocked! Returning false. solve( 5, 7): let's go left solve( 5, 6): start solve( 5, 6): let's go up solve( 4, 6): start solve( 4, 6): we're blocked! Returning false. solve( 5, 6): let's go right solve( 5, 7): start solve( 5, 7): we're blocked! Returning false. solve( 5, 6): let's go down solve( 6, 6): start solve( 6, 6): we're blocked! Returning false. solve( 5, 6): let's go left solve( 5, 5): start solve( 5, 5): let's go up solve( 4, 5): start solve( 4, 5): we're blocked! Returning false. solve( 5, 5): let's go right solve( 5, 6): start solve( 5, 6): we're blocked! Returning false. solve( 5, 5): let's go down solve( 6, 5): start solve( 6, 5): we're blocked! Returning false. solve( 5, 5): let's go left solve( 5, 4): start solve( 5, 4): let's go up solve( 4, 4): start solve( 4, 4): we're blocked! Returning false. solve( 5, 4): let's go right solve( 5, 5): start solve( 5, 5): we're blocked! Returning false. solve( 5, 4): let's go down solve( 6, 4): start solve( 6, 4): we're blocked! Returning false. solve( 5, 4): let's go left solve( 5, 3): start solve( 5, 3): let's go up solve( 4, 3): start solve( 4, 3): we're blocked! Returning false. solve( 5, 3): let's go right solve( 5, 4): start solve( 5, 4): we're blocked! Returning false. solve( 5, 3): let's go down solve( 6, 3): start solve( 6, 3): we're blocked! Returning false. solve( 5, 3): let's go left solve( 5, 2): start solve( 5, 2): let's go up solve( 4, 2): start solve( 4, 2): let's go up solve( 3, 2): start solve( 3, 2): let's go up solve( 2, 2): start solve( 2, 2): we're blocked! Returning false. solve( 3, 2): let's go right solve( 3, 3): start solve( 3, 3): we're blocked! Returning false. solve( 3, 2): let's go down solve( 4, 2): start solve( 4, 2): we're blocked! Returning false. solve( 3, 2): let's go left solve( 3, 1): start solve( 3, 1): let's go up solve( 2, 1): start solve( 2, 1): we're blocked! Returning false. solve( 3, 1): let's go right solve( 3, 2): start solve( 3, 2): we're blocked! Returning false. solve( 3, 1): let's go down solve( 4, 1): start solve( 4, 1): we're blocked! Returning false. solve( 3, 1): let's go left solve( 3, 0): start solve( 3, 0): let's go up solve( 2, 0): start solve( 2, 0): we're blocked! Returning false. solve( 3, 0): let's go right solve( 3, 1): start solve( 3, 1): we're blocked! Returning false. solve( 3, 0): let's go down solve( 4, 0): start solve( 4, 0): let's go up solve( 3, 0): start solve( 3, 0): we're blocked! Returning false. solve( 4, 0): let's go right solve( 4, 1): start solve( 4, 1): we're blocked! Returning false. solve( 4, 0): let's go down solve( 5, 0): start solve( 5, 0): let's go up solve( 4, 0): start solve( 4, 0): we're blocked! Returning false. solve( 5, 0): let's go right solve( 5, 1): start solve( 5, 1): we're blocked! Returning false. solve( 5, 0): let's go down solve( 6, 0): start solve( 6, 0): let's go up solve( 5, 0): start solve( 5, 0): we're blocked! Returning false. solve( 6, 0): let's go right solve( 6, 1): start solve( 6, 1): we're blocked! Returning false. solve( 6, 0): let's go down solve( 7, 0): start solve( 7, 0): let's go up solve( 6, 0): start solve( 6, 0): we're blocked! Returning false. solve( 7, 0): let's go right solve( 7, 1): start solve( 7, 1): let's go up solve( 6, 1): start solve( 6, 1): we're blocked! Returning false. solve( 7, 1): let's go right solve( 7, 2): start solve( 7, 2): let's go up solve( 6, 2): start solve( 6, 2): we're blocked! Returning false. solve( 7, 2): let's go right solve( 7, 3): start solve( 7, 3): let's go up solve( 6, 3): start solve( 6, 3): we're blocked! Returning false. solve( 7, 3): let's go right solve( 7, 4): start solve( 7, 4): let's go up solve( 6, 4): start solve( 6, 4): we're blocked! Returning false. solve( 7, 4): let's go right solve( 7, 5): start solve( 7, 5): let's go up solve( 6, 5): start solve( 6, 5): we're blocked! Returning false. solve( 7, 5): let's go right solve( 7, 6): start solve( 7, 6): let's go up solve( 6, 6): start solve( 6, 6): we're blocked! Returning false. solve( 7, 6): let's go right solve( 7, 7): start solve( 7, 7): let's go up solve( 6, 7): start solve( 6, 7): we're blocked! Returning false. solve( 7, 7): let's go right solve( 7, 8): start solve( 7, 8): let's go up solve( 6, 8): start solve( 6, 8): we're blocked! Returning false. solve( 7, 8): let's go right solve( 7, 9): start solve( 7, 9): let's go up solve( 6, 9): start solve( 6, 9): we're blocked! Returning false. solve( 7, 9): let's go right solve( 7, 10): start solve( 7, 10): let's go up solve( 6, 10): start solve( 6, 10): we're blocked! Returning false. solve( 7, 10): let's go right solve( 7, 11): start solve( 7, 11): let's go up solve( 6, 11): start solve( 6, 11): we're blocked! Returning false. solve( 7, 11): let's go right solve( 7, 12): start solve( 7, 12): We're done :) Returning true. solve( 7, 11): marking path solve( 7, 10): marking path solve( 7, 9): marking path solve( 7, 8): marking path solve( 7, 7): marking path solve( 7, 6): marking path solve( 7, 5): marking path solve( 7, 4): marking path solve( 7, 3): marking path solve( 7, 2): marking path solve( 7, 1): marking path solve( 7, 0): marking path solve( 6, 0): marking path solve( 5, 0): marking path solve( 4, 0): marking path solve( 3, 0): marking path solve( 3, 1): marking path solve( 3, 2): marking path solve( 4, 2): marking path solve( 5, 2): marking path solve( 5, 3): marking path solve( 5, 4): marking path solve( 5, 5): marking path solve( 5, 6): marking path solve( 5, 7): marking path solve( 4, 7): marking path solve( 4, 8): marking path solve( 3, 8): marking path solve( 2, 8): marking path solve( 1, 8): marking path solve( 1, 7): marking path solve( 1, 6): marking path solve( 2, 6): marking path solve( 3, 6): marking path solve( 3, 5): marking path solve( 3, 4): marking path solve( 2, 4): marking path solve( 1, 4): marking path solve( 1, 3): marking path solve( 1, 2): marking path solve( 0, 2): marking path solve( 0, 1): marking path solve( 0, 0): marking path ...0##000#### 10...0...#00# 0000.0.0.0#00 ...0...0.0### .0.0000..#00# .0......0#### .000000000000 ............=