#include <bits/stdc++.h>
using namespace std;
int main()
{
	int t;
	cin>>t;
	while (t--)
	{
		int n,m,k;
		cin>>n>>m>>k;
		if (n%2 or m%2)
		{
			cout<<"NO"<<endl;
			continue;
		}
		if (n==2)
		{
			if (k==m/2)
			{
				cout<<"YES"<<endl;
				for (int j=0;j<2;j++)
				{
					for (int i=1;i<=m;i++)
						cout<<(i+1)/2<<' ';
					cout<<endl;
				}
			}
			else
				cout<<"NO"<<endl;
		}
		else if(n==4)
		{
			int sol=m-k,ans[n][m];
			if (sol>=0 && (k-sol)%2==0 && sol!=1 && sol<=k)
			{
				int c=4;
				for (int j=0;j<sol*2;j++)
				{
					if (!j or j==sol*2-1)
						for (int i=0;i<4;i++)
							ans[i][j]=1;
					else
					{
						for (int i=0;i<4;i++)
							if (!i or i==3)
								ans[i][j]=1;
							else
								ans[i][j]=c/2;
						c++;
					}
				}
				c=sol+1;
				for (int j=sol*2;j<m;j+=2)
				{
					for (int i=0;i<4;i+=2)
						ans[i][j]=ans[i][j+1]=ans[i+1][j]=ans[i+1][j+1]=c++;
				}
				cout<<"YES"<<endl;
				for (int i=0;i<n;i++)
				{
					for (int j=0;j<m;j++)
						cout<<ans[i][j]<<' ';
					cout<<endl;
				}
			}
			else
				cout<<"NO"<<endl;
		}
	}
	
	return 0;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |