A well-known puzzle is to tour all the squares of an 8×8 chessboard with a knight, a piece that moves only by jumping one square in one direction and two squares in an orthogonal direction. The knight must visit every square of the board, without repeats, and then return to its starting square. There are many ways to do this, and the board is small enough that a person can solve the puzzle by hand.
This is a harder version, played on a rectangular m×n board with one extra constraint: the knight may never cross its own path. Picture the path as straight line segments joining the centers of the squares the knight jumps between. Those segments must form a simple polygon, so no two segments intersect or touch, except that consecutive segments touch at their common end point. Under this constraint the knight cannot reach every square, so you must instead maximize the number of squares it visits. The knight must still return to its starting square.
Figure 1 shows an optimal tour on a 6×6 board.

Figure 1: An optimal tour on a 6×6 board.