#include <iostream>
using namespace std;
void main()
{
int a[10][10]={0,0,1,1,0,0,0,0,0,0,
0,0,0,0,2,2,2,0,0,0,
0,0,0,0,0,0,3,0,0,0,
4,4,0,5,0,6,0,0,0,0,
0,0,0,5,0,6,0,7,7,0,
0,8,8,0,0,6,0,0,0,0,
0,0,0,0,0,6,0,0,0,0,
0,9,9,10,0,6,11,11,11,0,
0,0,0,0,0,6,0,0,0,0,
12,12,12,12,12,12,12,12,0,0};
int A[1000]={0,};
int B[1000]={0,};
int index=0;
int N=10;
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
int hnum=1,vnum=1;
bool stop=false;
//up
int num=0;
if(a[i][j]>0){
int nV=j;
while((--nV)>=0)
{
if(a[i][nV]==a[i][j])
{
stop=true;
break;
}
else
break;
}
if(stop)
continue;
//left
int nH=i;
while((--nH)>=0)
{
if(a[nH][j]==a[i][j]){
stop=true;
break;
}
else
break;
}
if(stop)
continue;
//down
nV=j;
while((++nV)<N)
{
if(a[i][nV]==a[i][j])
{
vnum++;
}
else
break;
}
//right
nH=i;
while((++nH)<N)
{
if(a[nH][j]==a[i][j])
{
hnum++;
}else
break;
}
if(vnum==1&&hnum==1)
{
B[index]=1;
A[index]=1;
}
if(vnum>1)
{
B[index]=2;
A[index]=vnum;
}
if(hnum>1)
{
B[index]=3;
A[index]=hnum;
}
index++;
}
}
}
int hsum=0,vsum=0,zsum=0;
for(i=0;i<index;i++)
{
cout<<A[i]<<" "<<B[i]<<endl;
if(B[i]==1)
zsum++;
if(B[i]==2)
hsum++;
if(B[i]==3)
vsum++;
}
cout<<zsum<<" "<<hsum<<" "<<vsum<<endl;
for(i=0;i<index;i++)
{
if(B[i]==1)
zsum*=A[i];
if(B[i]==2)
hsum*=A[i];
if(B[i]==3)
vsum*=A[i];
}
cout<<zsum<<" "<<hsum<<" "<<vsum<<endl;
}
using namespace std;
void main()
{
int a[10][10]={0,0,1,1,0,0,0,0,0,0,
0,0,0,0,2,2,2,0,0,0,
0,0,0,0,0,0,3,0,0,0,
4,4,0,5,0,6,0,0,0,0,
0,0,0,5,0,6,0,7,7,0,
0,8,8,0,0,6,0,0,0,0,
0,0,0,0,0,6,0,0,0,0,
0,9,9,10,0,6,11,11,11,0,
0,0,0,0,0,6,0,0,0,0,
12,12,12,12,12,12,12,12,0,0};
int A[1000]={0,};
int B[1000]={0,};
int index=0;
int N=10;
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
int hnum=1,vnum=1;
bool stop=false;
//up
int num=0;
if(a[i][j]>0){
int nV=j;
while((--nV)>=0)
{
if(a[i][nV]==a[i][j])
{
stop=true;
break;
}
else
break;
}
if(stop)
continue;
//left
int nH=i;
while((--nH)>=0)
{
if(a[nH][j]==a[i][j]){
stop=true;
break;
}
else
break;
}
if(stop)
continue;
//down
nV=j;
while((++nV)<N)
{
if(a[i][nV]==a[i][j])
{
vnum++;
}
else
break;
}
//right
nH=i;
while((++nH)<N)
{
if(a[nH][j]==a[i][j])
{
hnum++;
}else
break;
}
if(vnum==1&&hnum==1)
{
B[index]=1;
A[index]=1;
}
if(vnum>1)
{
B[index]=2;
A[index]=vnum;
}
if(hnum>1)
{
B[index]=3;
A[index]=hnum;
}
index++;
}
}
}
int hsum=0,vsum=0,zsum=0;
for(i=0;i<index;i++)
{
cout<<A[i]<<" "<<B[i]<<endl;
if(B[i]==1)
zsum++;
if(B[i]==2)
hsum++;
if(B[i]==3)
vsum++;
}
cout<<zsum<<" "<<hsum<<" "<<vsum<<endl;
for(i=0;i<index;i++)
{
if(B[i]==1)
zsum*=A[i];
if(B[i]==2)
hsum*=A[i];
if(B[i]==3)
vsum*=A[i];
}
cout<<zsum<<" "<<hsum<<" "<<vsum<<endl;
}