#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int t[11][11];
void f(int n, int m){
// assumes m >= 3
int a = 1, b = n*m/2+1;
bool nexta = false;
// The following works if n>=3 and m >= 2.
for (int i=1; i<=n; ++i){
for (int j=1; j<=m; ++j){
if (nexta){
t[i][j] = a;
a++;
}
else {
t[i][j] = b;
b++;
}
nexta = 1 - nexta;
}
}
}
void test(){
int n, m;
cin >> n >> m;
if (n==1 && m==1){
cout << "YES\n";
cout << "1\n";
return;
}
if ((n==1 && m<= 3) || (n <= 3 && m==1) || (n==2 && m==2) ) {
cout << "NO\n";
return;
}
cout << "YES\n";
bool flip = false;
if (m < n){
flip = true;
swap(m, n);
// Now m >= 3
}
f(n, m);
if (flip == false){
for (int i=1; i<=n; ++i){
for (int j=1; j<=m; ++j){
cout << t[i][j] << " ";
}
cout << "\n";
}
}
else{
swap(m, n);
for (int i=1; i<=n; ++i){
for (int j=1; j<=m; ++j){
cout << t[j][i] << " ";
}
cout << "\n";
}
}
}
int main(){
int t;
cin >> t;
for (int i=0; i<t; ++i){
test();
}
}