i don’t still understand what’s wrong is in my code
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i,j,k,l=0,n,m,t,c=0,d=0,max=0,h;
cin>>t;
for(k=1;k<=t;++k)
{
cin>>n>>m;
max=0;
int a[n+1][m+1];
l=1;
h=3;
if(n==2&&m>=3)
{
for(i=1;i<=m;++i)
{
if(i%6==1||i%6==2)
h=1;
else if(i%6==3||i%6==4)
h=2;
else
h=3;
a[1][i]=h;
}
a[2][1]=2;
for(i=2;i<=m;++i)
{
if(i%6==2||i%6==3)
h=3;
else if(i%6==4||i%6==5)
h=1;
else
h=2;
a[2][i]=h;
}
max=3;
}
else if(m==2)
{
for(i=1;i<=n;++i)
{
if(i%3==1)
h=1;
else if(i%3==2)
h=2;
else
h=3;
for(j=1;j<=m;++j)
{
a[i][j]=h;
if(max<a[i][j])
max=a[i][j];
}
}
}
else if(m==1)
{
for(i=1;i<=n;++i)
{ if(i%6==1||i%6==2)
h=1;
else if(i%6==3||i%6==4)
h=2;
else
h=3;
a[i][1]=h;
if(max<a[i][1])
max=a[i][1];
}
}
else
{ for(i=1;i<=n;++i)
{
if(i%4==1)
{
l=1;
c=0;
for(j=1;j<=m;++j)
{
a[i][j]=l;
c++;
if(a[i][j]>max)
max=a[i][j];
if(c==2)
{
if(a[i][j-1]==1)
l=2;
else
l=1;
c=0;
}
}}
else if(i%4==2)
{
h=3;
d=0;
for(j=1;j<=m;++j)
{
a[i][j]=h;
d++;
if(a[i][j]>max)
max=a[i][j];
if(d==2)
{
if(a[i][j-1]==3)
h=4;
else
h=3;
d=0;
}
}
}
else if(i%4==3)
{
l=2;
c=0;
for(j=1;j<=m;++j)
{
a[i][j]=l;
c++;
if(a[i][j]>max)
max=a[i][j];
if(c==2)
{
if(a[i][j-1]==1)
l=2;
else
l=1;
c=0;
}
}
}
else
{
h=4;
d=0;
for(j=1;j<=m;++j)
{
a[i][j]=h;
d++;
if(a[i][j]>max)
max=a[i][j];
if(d==2)
{
if(a[i][j-1]==3)
h=4;
else
h=3;
d=0;
}
}
}
}}
cout<<max<<"\n";
for(i=1;i<=n;++i)
{
for(j=1;j<=m;++j)
{
cout<<a[i][j]<<" ";
}
cout<<"\n";
}
}
}