B. Таблица соседей
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вам дана таблица с $$$n$$$ строками и $$$m$$$ столбцами, где в каждой ячейке написано неотрицательное целое число. Мы говорим, что таблица является хорошей, если для каждой ячейки выполняется следующее условие: если в ней написано число $$$k > 0$$$, то ровно в $$$k$$$ соседних с ней ячейках написано число, большее $$$0$$$. Заметьте, что если число в ячейке равно $$$0$$$, то нет никаких условий на соседние ячейки.

Вы можете взять любое число в таблице и увеличить его на $$$1$$$. Вы можете применять эту операцию столько раз, сколько хотите, к любым числам в таблице. Выполните несколько операций (возможно, ноль), чтобы сделать сетку хорошей, или скажите, что это невозможно. Если существует несколько возможных ответов, вы можете вывести любой из них.

Две ячейки считаются соседними, если они имеют общее ребро.

Входные данные

Ввод состоит из нескольких наборов входных данных. В первой строке записано целое число $$$t$$$ ($$$1 \le t \le 5000$$$)  — количество наборов входных данных. Описание наборов входных данных приведено ниже.

Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$m$$$ ($$$2 \le n, m \le 300$$$)  — количество строк и столбцов соответственно.

Каждая из следующих $$$n$$$ строк содержит по $$$m$$$ целых чисел, $$$j$$$-й элемент $$$i$$$-й строки равен $$$a_{i, j}$$$  — это число, записанное в $$$j$$$-й ячейке $$$i$$$-й строки ($$$0 \le a_{i, j} \le 10^9$$$).

Гарантируется, что сумма $$$n \cdot m$$$ по всем тестовым случаям не превышает $$$10^5$$$.

Выходные данные

Если получить хорошую таблицу невозможно, выведите одну строку, содержащую "NO".

В противном случае выведите одну строку, содержащую "YES", за которой следуют $$$n$$$ строк, каждая из которых содержит $$$m$$$ целых чисел, которые описывают конечное состояние сетки. Эта конечная таблица должна быть доступна из начальной с помощью применения нескольких операций (возможно, ни одной).

Если существует несколько возможных ответов, вы можете вывести любой из них.

Пример
Входные данные
5
3 4
0 0 0 0
0 1 0 0
0 0 0 0
2 2
3 0
0 0
2 2
0 0
0 0
2 3
0 0 0
0 4 0
4 4
0 0 0 0
0 2 0 1
0 0 0 0
0 0 0 0
Выходные данные
YES
0 0 0 0
0 1 1 0
0 0 0 0
NO
YES
0 0
0 0
NO
YES
0 1 0 0
1 4 2 1
0 2 0 0
1 3 1 0
Примечание

В первом наборе входных данных мы можем получить хорошую таблицу, увеличив число в строке $$$2$$$, столбце $$$3$$$ один раз. Обе ячейки, содержащие $$$1$$$, имеют ровно одного соседа, который больше нуля, поэтому таблица хорошая. Существует много других решений, таких как таблица

$$$$$$0\;1\;0\;0$$$$$$ $$$$$$0\;2\;1\;0$$$$$$ $$$$$$0\;0\;0\;0$$$$$$

Все они принимаются как действительные ответы.

Во втором наборе входных данных невозможно сделать таблицу хорошей.

В третьем наборе входных данных обратите внимание, что ни в одной ячейке нет числа больше нуля, поэтому таблица изначально хорошая.