/*
#include<stdio.h>
int m,n;//m은 세로길이 n은 가로 길이
int map[101][101]={};
int map2[101][101]={};
int x;
void dfs1(int i,int j){
if(i<1||j<1||i>m||j>n||map[i][j]!=1) return ;
map[i][j]=0;
dfs1(i-1,j);
dfs1(i+1,j);
dfs1(i,j-1);
dfs1(i,j+1);
}
void dfs2(int i,int j){
map[i][j]=1;
if(i-1>=1&&map[i-1][j]==0) {
dfs2(i-1,j);
}
if(i+1<=m&&map[i+1][j]==0) {
dfs2(i+1,j);
}
if(j-1>=1&&map[i][j-1]==0) {
dfs2(i,j-1);
}
if(j+1<=n&&map[i][j+1]==0) {
dfs2(i,j+1);
}
}
int main()
{
int i,j;
scanf("%d %d",&m,&n);
for(i=1 ; i<=m ; i++) {
for(j=1 ; j<=n ; j++) {
scanf("%d",&map[i][j]);
map2[i][j]=map[i][j];
}
}
int cnt1=0;
for(i=1;i<=m;i++){
for(j=1;j<=n;j++){
if(map[i][j]==1)
{
dfs1(i,j);
cnt1++;
}
}
}
for(i=1 ; i<=m ; i++) {
for(j=1 ; j<=n ; j++) {
map[i][j]=map2[i][j];
}
}
int cnt2=0;
for(i=1;i<=m;i++){
for(j=1;j<=n;j++){
if(map[i][j]==0)
{
dfs2(i,j);
cnt2++;
}
}
}
printf("%d %d",cnt2,cnt1);
}
*/
/*
#include<stdio.h>
int map[8][8]={};
int pang;
void dfs(int i,int j,int c){
if(i<1||j<1||i>7||j>7||map[i][j]!=c) return ;
map[i][j]=0;
pang++;
dfs(i-1,j,c);
dfs(i+1,j,c);
dfs(i,j-1,c);
dfs(i,j+1,c);
}
int main()
{
int i,j;
for(i=1 ; i<=7 ; i++) {
for(j=1 ; j<=7 ; j++) {
scanf("%d",&map[i][j]);
}
}
int cnt=0;
for(i=1;i<=7;i++){
for(j=1;j<=7;j++){
if(map[i][j]!=0)
{
pang=0;
dfs(i,j,map[i][j]);
if(pang>=3) cnt++;
}
}
}
printf("%d",cnt);
}
*/
/*
#include<stdio.h>
int map[26][26]={},n;
int hos;
int dh[26]={};
void dfs(int i,int j)
{
if(i<1||j<1||i>1||j>n||map[i][j]!=1)
map[i][j]=0;
hos++;
dfs(i-1,j);
dfs(i+1,j);
dfs(i,j-1);
dfs(i,j+1);
}
int main()
{
int i,j,temp;
scanf("%d",&n);
for(i=1 ; i<=n; i++) {
for(j=1 ; j<=n ; j++) {
scanf("%1d",&map[i][j]);
}
}
int cnt=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(map[i][j]==1)
{
hos=0;
dfs(i,j);
cnt++;
dh[cnt]=hos;
}
}
}
printf("%d\n", cnt);
}
*/