#include<bits/stdc++.h>usingnamespace std;constint maxn=310;int a[maxn][maxn],b[maxn][maxn];int dx[]={0,1,0,-1};int dy[]={1,0,-1,0};voidsolve(){bool flag =false;int n, m;scanf("%d%d",&n,&m);for(int i =1; i <= n; i++){for(int j =1; j <= m; j++){scanf("%d",&a[i][j]);}}for(int i =1; i <= n; i++){for(int j =1; j <= m; j++){int cnt =0;for(int k =0; k <4; k++){int nx = i + dx[k], ny = j + dy[k];if(nx >=1&& nx <= n && ny >=1&& ny <= m) cnt++;}if(a[i][j]> cnt){puts("NO");return;}
b[i][j]= cnt;}}puts("YES");for(int i =1; i <= n; i++){for(int j =1; j <= m; j++){printf("%d", b[i][j]);if(j == m)puts("");elseprintf(" ");}}}intmain(){int _;scanf("%d",&_);while(_--){solve();}return0;}