Write a program to solve a **Sudoku puzzle** by filling the empty cells.A sudoku solution must satisfy all of the following rules:

- Each of the digits
`1-9`

must occur exactly once in each row. - Each of the digits
`1-9`

must occur exactly once in each column. - Each of the the digits
`1-9`

must occur exactly once in each of the 9 3x3 sub-boxes of the grid.

**Problem Note:**

- The given board contain only digits 1-9 and the character
`'.'`

. - You may assume that the given Sudoku puzzle will have a single unique solution.
- The given board size is always 9x9.
- Empty cells are indicated by the character ' . '

**Example**

**Input: **A given sudoku puzzle

**Output: **Solution numbers are marked in red.