模拟真的烦
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10;
char p[N][N];
int n,m,k;
void print()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)cout<<p[i][j];
cout<<endl;
}
}
void intt(int i,int j)
{
if(i>n)return ;
if(j>m){
intt(i+2,1);
return ;
}
if(j==1)p[i][j]=p[i+1][j]=(p[i-1][j]-'a'+1)%26+'a';
else p[i][j]=p[i+1][j]=(p[i][j-1]-'a'+1)%26+'a';
intt(i,j+1);
}
void bfs()
{
p[1][1]=p[2][1]='a';
intt(1,2);
if(n%2){
for(int i=1;i<m;i+=2){p[n][i]=p[n][i+1];k--;}
}
int t=m/2*2;
int flag=0;
for(int i=1;i<=n;i+=2)
{
for(int j=1;j<t;j+=2)
{
if(k<=0)return ;
swap(p[i][j],p[i+1][j+1]);
k-=2;
}
}
}
void sove()
{
cin>>n>>m>>k;
int mi=m/2,ma=m/2*n;
if(n%2==0)mi=0;
if((k-mi)%2)puts("NO");
else if((k-mi)>=0&&(k-mi)<=ma)puts("YES"),bfs(),print();
else puts("NO");
}
int main()
{
int t;
cin>>t;
while(t--)sove();
}