```
3
_ _
5| |45
5|_ _|15
```

**Instructions**

Place numbers in the grid such that:

- When you look at the grid from the left, at least one number

in that row is the border number. - When you look at it from the right, the product of all numbers in that row

is equal to the number on the right - When you look at it from the top, the number on the top of the grid is present

in that column. If there is no boundary number on top, assume there is no restricting

condition.As long as the conditions are met, some grid locations can be left empty.

**Sample Solution**

```
In the case of the top left of the 2 by 2 grid,
looking at it from the left means the number 5 must be in either (0,0) or (0,1).
In addition, when looking at that row from the right, the product
of the numbers in the row must equal the boundary number on the right.
In the case of the top right of the 2 by 2 grid,
looking at it from the right means the number 9 must be in either (0,0)
or (0,1), as 9 * 5 = 45.
Hence, the first row in the 2 by 2 grid can either be 5 and 9, or 9 and 5.
In the case of the second column (#,1), the number 3 must be in that column.
```

The solution for this problem, by hand, is

```
(0,0) = 5, (0,1) = 9, (1,0) = 5, (1,1) = 3
```

The question had a 9 by 9 grid with numbers all around the left, top, and right of the grid. How can I go about this computationally?