#include <iostream>
#include <fstream>
#define nmax 103
using namespace std;
ifstream f("elicop.in");
ofstream g("elicop.out");
int sump[nmax][nmax],sums[nmax][nmax],n,m,elicop[45],n1,n2;
bool a[nmax][nmax];
void principala1(int x1,int y1,int x2,int y2,int q)
{
int suma=0,i;
for(i=0;i<=x2-x1;i++)suma+=sump[x2][y2-i]-sump[x1+i-1][y1-1];
if(suma==(x2-x1+1)*(x2-x1+2)/2)
n1++;
if(suma<=(x2-x1+1)*(x2-x1+2)/4)
{
n2++;
elicop[n2]=q;
}
}
void principala2(int x1,int y1,int x2,int y2,int q)
{
int suma=0,i;
for(i=0;i<=x2-x1;i++)suma+=sump[x2-i][y2]-sump[x1-1][y1+i-1];
if(suma==(x2-x1+1)*(x2-x1+2)/2)
n1++;
if(suma<=(x2-x1+1)*(x2-x1+2)/4)
{
n2++;
elicop[n2]=q;
}
}
void secundara1(int x1,int y1,int x2,int y2,int q)
{
int suma=0,i;
for(i=0;i<=x2-x1;i++)suma+=sums[x2][y2+i]-sums[x1+i-1][y1+1];
if(suma==(x2-x1+1)*(x2-x1+2)/2)
n1++;
if(suma<=(x2-x1+1)*(x2-x1+2)/4)
{
n2++;
elicop[n2]=q;
}
}
void secundara2(int x1,int y1,int x2,int y2,int q)
{
int suma=0,i;
for(i=0;i<=x2-x1;i++)suma+=sums[x2-i][y2]-sums[x1-1][y1-i+1];
if(suma==(x2-x1+1)*(x2-x1+2)/2)
n1++;
if(suma<=(x2-x1+1)*(x2-x1+2)/4)
{
n2++;
elicop[n2]=q;
}
}
void solve()
{
int i,j,k,q,x1,x2,y1,y2,p;
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
f>>a[i][j];
sump[i][j]=a[i][j]+sump[i-1][j-1];
sums[i][j]=a[i][j]+sums[i-1][j+1];
}
f>>k;
for(q=1;q<=k;q++)
{
f>>x1>>y1>>x2>>y2>>p;
if(p==-1&&(x1-x2>0&&y1-y2>0))principala1(x2,y2,x1,y1,q); else
if(p==-1&&(x1-x2<0&&y1-y2<0))principala1(x1,y1,x2,y2,q); else
if(p==1&&(x1-x2<0&&y1-y2<0))principala2(x1,y1,x2,y2,q); else
if(p==1&&(x1-x2>0&&y1-y2>0))principala2(x2,y2,x1,y1,q); else
if(p==-1&&x2>x1)secundara1(x1,y1,x2,y2,q); else
if(p==-1&&x2<x1)secundara1(x2,y2,x1,y1,q); else
if(p==1&&x2>x1)secundara2(x1,y1,x2,y2,q); else
secundara2(x2,y2,x1,y1,q);
}
g<<n1<<'\n'<<n2<<" ";
for(i=1;i<=n2;i++)
g<<elicop[i]<<" ";
}
int main()
{
solve();
return 0;
}