/*
#include<stdio.h>
#include<string.h>
struct _node str {
char word[1000];
};
int main()
{
char word1[1000] = {0};
char word2[1000] = {0};
int i;
struct _node a, b;
strcmp(a.word, b.word);
scanf("%s %s", word1, word2);
printf("%d", strcmp(word1, word2));
for(i=0; i<strlen(word1); i++) {
if(word1[i] > word2[i]) {
}
}
}
/*
#include<stdio.h>
#include<string.h>
struct schedule
{
char n[100];
int t;
};
int main()
{
struct schedule s[101];
int k,i,j,u,y,m,d;
scanf("%d",&k);
for(i=1; i<=k; i++)
{
scanf(" %s %d %d %d",s[i].n,&y,&m,&d);
s[i].t=10000*y+100*m+d;
}
for(i=1; i<k; i++)
{
for(j=1; j<k-i+1; j++)
{
if(s[j].t>s[j+1].t)
{
s[0]=s[j];
s[j]=s[j+1];
s[j+1]=s[0];
}
else if(s[j].t==s[j+1].t)
{
if(strcmp(s[j].n,s[j+1].n)>0)
{
s[0]=s[j];
s[j]=s[j+1];
s[j+1]=s[0];
}
}
}
}
for(i=1; i<=k; i++)
printf("%s\n",s[i].n);
return 0;
}
#include<stdio.h>
#define size
int stack[size];
int top=-1;
void push(int data)
{
if(top==size-1)
return ;
stack[++top]=data;
}
int pop()
{
if(top==-1)
{
return 0;
}
return stack[top--];
}
int main()
{
int i,j,a,b,n,m,arr[101][101]= {},k=0;
int t=1,visited[101]= {};
scanf("%d %d",&n,&m);
for(i=1; i<=m; i++)
{
scanf("%d %d",&a,&b);
arr[a][b]=1;
arr[b][a]=1;
}
push(1);
visited[1]=1;
while(top!=-1)
{
for(i=1; i<=n; i++)
{
if(arr[t][i]==1 && visited[i]==0)
{
visited[i]=1;
t=i;
push(t);
break;
}
}
t=pop();
}
for(i=1; i<=n; i++)
{
if(visited[i]==1)
{
k++;
}
}
printf("%d",k);
}
/*
#include<stdio.h>
#define size 101
int visited[size]= {},arr[size][size]= {},n;
void dfs(int node)
{
int i;
visited[node]=1;
for(i=1; i<=n; i++)
{
if(arr[node][i]==1 && visited[i]==0)
{
dfs(i);
}
}
}
int main()
{
int i,j,a,b,m,k=0;
scanf("%d %d",&n,&m);
for(i=1; i<=m; i++)
{
scanf("%d %d",&a,&b);
arr[a][b]=1;
arr[b][a]=1;
}
dfs(1);
for(i=2; i<=n; i++)
{
if(visited[i]==1)
{
k++;
}
}
printf("%d",k);
return 0;
}
/*/
#include<stdio.h>
int n,a[25][25];
void dfs()
{
}
int main()
{
int i,j;
scanf("%d",&n);
for(i=1; i=n; i++)
{
for(j=1; j<=n; j++)
{
scanf("%d",&a[i][j]);
}
}
}