N-Queens - Constraint Tracking

Place queens row by row. For each row, try each column and check if it's safe.

Track three constraints: 1.1. cols: columns with queens.

2.2. diag1: main diagonals (row - col is constant).

3.3. diag2: anti-diagonals (row + col is constant).

If column and both diagonals are free, place the queen and recurse.