Horses can start or end from/to any cell not having a tree on the field. Sam must be present on a cell from where he can see both the horses all the time. Sam can see only in horizontal or vertical direction. code example
Example: one space diagonally in java
class Point {
private:
int x, y;
public:
Point(int i, int j); // x = i; y = j;
int GetX();
int GetY();
void SetX(int i);
void SetY(int j);
void SetPoint(int i, int j); x = i; y = j;
}