semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	int m,n,i,j,k,p,q,y=0;
	char a[101][101],b[101][101];
	cin>>n;
	for(i=1;i<=n;i++)
	{	 for(j=1;j<=n;j++)	{cin>>a[i][j];b[i][j]=a[i][j];} 	}
	cin>>m;
	for(k=1;k<m;k++)
	{	for(i=1;i<=n;i++)
		{	for(j=1;j<=n;j++)
			{
				if(a[i][j]=='@'&&b[i][j]=='@')  
					{
						if(a[i][j-1]=='.') a[i][j-1]='@';
						if(a[i][j+1]=='.') a[i][j+1]='@';
						if(a[i-1][j]=='.') a[i-1][j]='@';
						if(a[i+1][j]=='.') a[i+1][j]='@';
					}
			}
		}
		for(p=1;p<=n;p++)
		{	for(q=1;q<=n;q++) b[p][q]=a[p][q];	}
	}
	for(p=1;p<=n;p++)
		{	for(q=1;q<=n;q++)
			{
				if(a[p][q]=='@') y=y+1;	}}
	cout<<y;
	return 0;
}
/**
 * @file 4.cpp
 * @author ??? 1300012960
 * @date 2013-11-01
 * @description
 * ??????: ???? */
int f(char c)         // ??f(x)???????????
{
    if (c == '.')
        c = '@';
    return c;
}
int g(char c)        // ????????????????? ?g(x)???????? ?????????
{
    if (c == '.')
        c = '*';
    return c;
}
int main()
{
    int n, m, sum = 0;
    char c[102][102];        // ??????????? ?????????c[1][1]??
    
    cin >> n;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++)
            cin >> c[i][j];
    cin >> m;
    
    for (int k = 1; k < m; k++)   // ???????????m - 1?
    {
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= n; j++)
            {
                if (c[i][j] != '@')
                    continue;
                else       // ??????
                {
                    c[i - 1][j] = f(c[i - 1][j]);     // ???????????????? ????
                    c[i + 1][j] = g(c[i + 1][j]);   // ?????????'*'??????
                    c[i][j + 1] = g(c[i][j + 1]);
                    c[i][j - 1] = f(c[i][j - 1]);
                }
            }
        }
        for (int i = 1; i <= n; i++)       // ???????????'*'????????????'@'
        {
            for (int j = 1; j <= n; j++)
            {
                if (c[i][j] == '*') c[i][j] = '@';
            }
        }
    }
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= n; j++)
        {
            sum += (c[i][j] == '@');          // ???????????
        }
    }
    cout << sum << endl;
    return 0;
}
int main(){
	char a[102][102];
	int n,m;
	int i,j,k;
	int count=0;

	scanf("%d",&n);

	for(i=1;i<n+1;i++){
		for(j=1;j<n+2;j++){
			scanf("%c",&a[i][j]);
		}
	}

	scanf("%d",&m);

	for(k=1;k<m;k++){
		for(i=1;i<n+1;i++){
			for(j=1;j<n+2;j++){
				if(a[i][j]=='@'){
					if(a[i+1][j]=='.'){
						a[i+1][j]='*';
					}
					if(a[i-1][j]=='.'){
						a[i-1][j]='*';
					}
					if(a[i][j+1]=='.'){
						a[i][j+1]='*';
					}
					if(a[i][j-1]=='.'){
						a[i][j-1]='*';
					}
				}
			}
		}
		for(i=1;i<n+1;i++){
			for(j=1;j<n+2;j++){
				if(a[i][j]=='*'){
					a[i][j]='@';
				}
			}
		}
	}

	for(i=1;i<n+1;i++){
		for(j=1;j<n+2;j++){
			if(a[i][j]=='@'){
				count++;
			}
		}
	}

	printf("%d",count);

	return 0;
}
int main()
{
	int n,m,i,j,k,counter;
	char a[102][102],b[102][102];
    cin>>n;
	for(i=0;i<n+2;i++)
	{
	   for(j=0;j<n+2;j++)a[i][j]='#';
	}
	for(i=1;i<n+1;i++)
	{
	    for(j=1;j<n+1;j++)cin>>a[i][j];
	}
	cin>>m;
	for(k=2;k<=m;k++)
	{
		for(i=0;i<=n+1;i++)
	   {
	      for(j=0;j<=n+1;j++)
		  {
                b[i][j]=a[i][j];
		  }
		}
	   for(i=1;i<=n;i++)
	   {
	      for(j=1;j<=n;j++)
		  {
		     if(a[i][j]=='@')
			 {
				
			    if(a[i-1][j]=='.')b[i-1][j]='@';
				if(a[i+1][j]=='.')b[i+1][j]='@';
				if(a[i][j-1]=='.')b[i][j-1]='@';
				if(a[i][j+1]=='.')b[i][j+1]='@';
			 }
		  }
	   }
	   for(i=0;i<=n+1;i++)
	   {
	      for(j=0;j<=n+1;j++)
		  {
                a[i][j]=b[i][j];
		  }
		}
	}
	counter=0;
	for(i=1;i<=n;i++)
	{
	   for(j=1;j<=n;j++)
	   {
	       if(a[i][j]=='@')counter++;
	   }
	}
	cout<<counter;
	return 0;
}
int main()
{
	int n, m, p = 0, x, y;
	char dorm[102][102];
	cin >> n;
	for (x = 1; x <= n; x++) for (y = 1; y <= n; y++) cin >> dorm[x][y];
	cin >> m;
	for (x = 0; x <= n + 1; x++)
	{
		dorm[x][n+1] = '#';
		dorm[x][0] = '#';
		dorm[0][x] = '#';
		dorm[n+1][x] = '#';
	}
	do
	{
		for (x = 1; x <= n; x++) for (y = 1; y <= n; y++) if (dorm[x][y] == '@')
		{
			if (dorm[x-1][y] == '.') dorm[x-1][y] = '!';
			if (dorm[x+1][y] == '.') dorm[x+1][y] = '!';
			if (dorm[x][y-1] == '.') dorm[x][y-1] = '!';
			if (dorm[x][y+1] == '.') dorm[x][y+1] = '!';
		}
		for (x = 1; x <= n; x++) for (y = 1; y <= n; y++) if (dorm[x][y] == '!') dorm[x][y] = '@';
		m--;
	} while (m > 1);
	for (x = 1; x <= n; x++) for (y = 1; y <= n; y++) if (dorm[x][y] == '@') p++;
	cout << p << endl;
	return 0;
}
char map[102][102];
int queue[2][128*100+100+1],num[2];//????????????????????
int sum;


int main()
{
	int i,j,k,N,m;
	memset(map,'#',sizeof(map));

	//input
	scanf("%d",&N);
	for(i=1;i<=N;i++)
	{
		scanf("%s",&map[i][1]);
		map[i][N+1]='#';
		for(j=1;j<=N;j++)
			if(map[i][j]=='@')
			{
				queue[0][num[0]++]=(i<<7)+j;
				sum++;
			}
	}
	scanf("%d",&m);

	//iteration
	for(k=0;k<m-1;k++)
	{
		int tmp=k&1;//????????
		for(i=0;i<num[tmp];i++)
		{
			int x,y;
			x=queue[k&1][i]>>7;
			y=queue[k&1][i]&127;
			INFECT(x-1,y,1-tmp);
			INFECT(x+1,y,1-tmp);
			INFECT(x,y-1,1-tmp);
			INFECT(x,y+1,1-tmp);
		}
		num[tmp]=0;//???????
	}

	//output
	printf("%d\n",sum);


	return 0;
}
int main(){
	int n,i,j,m,num=0,k;
	char a[102][103],b[102][103];
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		scanf("%s",a[i]);
	}
	for(i=1;i<=n;i++){
		for(j=n-1;j>=0;j--){
			a[i][j+1]=a[i][j];
		}
	}

	scanf("%d",&m);
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			b[i][j]=a[i][j];
		}
	}
	for(k=1;k<m;k++){
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			if(a[i][j]=='@'){
				if(b[i-1][j]=='.'){
					b[i-1][j]='@';
				}
				if(b[i+1][j]=='.'){
					b[i+1][j]='@';
				}
				if(b[i][j-1]=='.'){
					b[i][j-1]='@';
				}
				if(b[i][j+1]=='.'){
					b[i][j+1]='@';
				}
			}
		}
	}
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			a[i][j]=b[i][j];
		}
	}
	}
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			if(b[i][j]=='@'){
				num++;
			}
		}
	}
	printf("%d",num);
	return 0;
}
char s[105][105]={'\0'};
int n;
void lg(char a[105][105],int m)
{
	int record[105][105]={0},i,j;
	if(m==1)//???????????
	{for(i=0;i<n;i++)
			for(j=0;j<n;j++)
			{
				if(s[i][j]=='@')
					record[i][j]=1;//????????????????????????????
			}
			for(i=0;i<n;i++)
				for(j=0;j<n;j++)
					{if(record[i][j]==1)
				{
					if(s[i][j+1]!='#'&&j+1!=n)
						s[i][j+1]='@';
					if(s[i][j-1]!='#'&&j-1!=-1)
						s[i][j-1]='@';
					if(s[i+1][j]!='#'&&i+1!=n)
						s[i+1][j]='@';
					if(s[i-1][j]!='#'&&i-1!=-1)
						s[i-1][j]='@';
				}
				}
	}
	if (m>1)
	{
		lg(s,m-1);//????
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
			{
				if(s[i][j]=='@')
					record[i][j]=1;
			}
			for(i=0;i<n;i++)
				for(j=0;j<n;j++)
					{if(record[i][j]==1)
				{
					if(s[i][j+1]!='#'&&j+1!=n)
						s[i][j+1]='@';
					if(s[i][j-1]!='#'&&j-1!=-1)
						s[i][j-1]='@';
					if(s[i+1][j]!='#'&&i+1!=n)
						s[i+1][j]='@';
					if(s[i-1][j]!='#'&&i-1!=-1)
						s[i-1][j]='@';
				}
			}
	}

}

int main( )
{
	int i,m,sum,j;
	cin>>n;
	cin.get();
	for(i=0;i<n;i++)
		cin.getline(s[i],105);
	cin>>m;
	lg(s,m-1);
	sum=0;
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			if(s[i][j]=='@')
				sum+=1;//??????
	cout<<sum;

	

	return 0;
}
/*
 *liuganchuanran.cpp
 *?????????????????????????n*n????????????????????????????????????????????????????????????????????????????????????????m????????
 *Created on: 2012-11-12
 *Author: ??
 */
int main() {
	int n = 0, m = 0;//????
	cin >> n;
	char shuru[101][101];
	for (int i = 0; i < n; i++) {//????
		for (int j = 0; j < n; j++) {
			cin >> shuru[i][j];
		}
	}
	cin >> m;
	for (int k = 1; k < m; k++) {//??????????
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				if (shuru[i][j] == '@') {
					if (((i - 1) >= 0) && shuru[i - 1][j] == '.')
						shuru[i - 1][j] = 'a';
					if (((i + 1) < n) && shuru[i + 1][j] == '.')
						shuru[i + 1][j] = 'a';
					if (((j - 1) >= 0) && shuru[i][j - 1] == '.')
						shuru[i][j - 1] = 'a';
					if (((j + 1) < n) && shuru[i][j + 1] == '.')
						shuru[i][j + 1] = 'a';
				}
			}
		}
		for (int i = 0; i < n; i++) {//??????
			for (int j = 0; j < n; j++) {
				if (shuru[i][j] == 'a')
					shuru[i][j] = '@';
				else
					continue;
			}
		}
	}
	int jishu = 0;
	for (int i = 0; i < n; i++) {//????????
		for (int j = 0; j < n; j++) {
			if (shuru[i][j] == '@')
				jishu++;
			else
				continue;
		}
	}
	cout << jishu << endl;
	return 0;
}
char m[100][100][100];
int n;
int main()
{
	int i,j,d;
	cin>>n;
	cin.get();
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			cin.get(m[0][i][j]);
		}
		cin.get();
	}
	cin>>d;
	int t=0,flag=0,count=0;
	for(t=1;t<d;t++)
	{
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				flag=0;
				if(i>0)
				{
					if(m[t-1][i-1][j]=='@')
						flag=1;
				}
				if(i<n-1)
				{
					if(m[t-1][i+1][j]=='@')
						flag=1;
				}
				if(j>=0)
				{
					if(m[t-1][i][j-1]=='@')
						flag=1;
				}
				if(j<n-1)
				{
					if(m[t-1][i][j+1]=='@')
						flag=1;
				}
				if(flag==1&&m[t-1][i][j]!='#')
					m[t][i][j]='@';
				else
					m[t][i][j]=m[t-1][i][j];
				if(t==d-1)
				{
					if(m[t][i][j]=='@')
						count++;
				}
			}
		}
	}
	cout<<count<<endl;
	return 0;
}
char a[100][100];
int main()
{
	int n,m,s=0;
	cin>>n;
	for(int i=0;i<n;i++)
		for(int j=0;j<n;j++)
			cin>>a[i][j];
	cin>>m;
	for(int k=1;k<m;k++)
	{
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
			{
				if(a[i][j]=='@'){
				if(i>0&&a[i-1][j]=='.') a[i-1][j]='*';
				if(j>0&&a[i][j-1]=='.') a[i][j-1]='*';
				if(i<n-1&&a[i+1][j]=='.') a[i+1][j]='*';
				if(j<n-1&&a[i][j+1]=='.') a[i][j+1]='*';
				}
			}
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
			{
				if(a[i][j]=='*') a[i][j]='@';
			}
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			if(a[i][j]=='@') s++;
		}
	}
	cout<<s;
	return 0;
}
int main()
{
	char a[102][102];
	int m,n,i,j,k,p=0;
	int b[200][200],c[200][200];
	cin>>m;
	for(i=1;i<=m;i++)
		for(j=1;j<=m;j++)
			cin>>a[i][j];
	cin>>n;
	for(i=1;i<=m;i++)
	{
		for(j=1;j<=m;j++)
		{
			if(a[i][j]=='.')
				b[i+1][j+1]=0;
			if(a[i][j]=='#')
				b[i+1][j+1]=-10000;
			if(a[i][j]=='@')
				b[i+1][j+1]=1;
		}
	}
	for(i=2;i<=m+1;i++)
	{
		for(j=2;j<=m+1;j++)
		{
			c[i][j]=0;
		}
	}
	for(k=0;k<n-1;k++)
	{
		for(i=2;i<=m+1;i++)
		{
			for(j=2;j<=m+1;j++)
			{
				if(b[i][j]>0)
				{
					c[i][j]=1;
				}
			}
		}
		for(i=2;i<=m+1;i++)
	    {
			for(j=2;j<=m+1;j++)
			{
				if(c[i][j]==1)
				{
					b[i][j+1]++;
					b[i][j-1]++;
					b[i+1][j]++;
					b[i-1][j]++;
				}
			}
		}
	for(i=2;i<=m+1;i++)
	{
		for(j=2;j<=m+1;j++)
		{
			c[i][j]=0;
		}
	}
	}
	for(i=2;i<=m+1;i++)
		{
			for(j=2;j<=m+1;j++)
			{
				if(b[i][j]>0)
					p++;
			}
	}
	cout<<p;
	return 0;
}
int main()
{
	int n,m,i,j,k,t=0;
	char p[103][103],p1[103][103];
	scanf("%d\n",&n);
	for(j=0;j<n+2;j++)
	{
		p[0][j]='.';
		p[n+1][j]='.';
	}
	for(i=1;i<n+1;i++)
	{   
		p[i][0]='.';
		for(j=1;j<n+1;j++)
		{
		  scanf("%c",&p[i][j]);
		}
		p[i][n+1]='.';
		scanf("\n");
	}
	scanf("%d",&m);
	for(k=2;k<=m;k++)
	{   
		for(i=1;i<n+1;i++)
		{
			for(j=0;j<n+1;j++)
			{
				p1[i][j]=p[i][j];
			}
		}
		for(i=1;i<n+1;i++)
		{
			for(j=1;j<n+1;j++)
			{
				if(p[i][j]=='.')
				{
					if(p1[i-1][j]=='@'||p1[i+1][j]=='@'||p1[i][j-1]=='@'||p1[i][j+1]=='@')
					{
						p[i][j]='@';
					}
				}
			}
		}
		
	}  
	for(i=1;i<n+1;i++)
	{
		for(j=1;j<n+1;j++)
		{
			if(p[i][j]=='@')
				t++;
		}
	}
	printf("%d\n",t);
	return 0;
}
int main()

{

    char a[110][110];

    char b[110][110];

    int n,m;

    int i,j,k;

    scanf("%d",&n);

    for(i=1;i<=n;i++)

        scanf("%s",a[i]+1);

    scanf("%d",&m);

    for(k=1;k<m;k++)

    {

        for(i=1;i<=n;i++)

        {

            for(j=1;j<=n;j++)

            {

                if(a[i][j] == '.' &&

                    (

                        a[i-1][j] == '@' ||

                        a[i][j-1] == '@' ||

                        a[i+1][j] == '@' ||

                        a[i][j+1] == '@'

                    ))

                    b[i][j] = '@';

                else

                    b[i][j] = a[i][j];

            }

        }

        for(i=1;i<=n;i++)

        {

            for(j=1;j<=n;j++)

            {

                a[i][j] = b[i][j];

                //printf("%c",a[i][j]);

            }

            //printf("\n");

        }

    }

    int sum = 0;

    for(i=1;i<=n;i++)

    {

        for(j=1;j<=n;j++)

        {

            if(a[i][j] == '@')

                sum++;

        }

    }

    printf("%d\n", sum);

    return 0;

}
int main() 
{
	int n,m;
	char a[103][104];
	int i,j,k,count=0,h[100][100];
	scanf("%d",&n);getchar();
	for(i=0;i<=n+1;i++)
	{
		a[0][i]='#';
		a[n+1][i]='#';
	}
	for(i=0;i<=n+1;i++)
	{
		a[i][0]='#';
		a[i][n+1]='#';
	}
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)

		{scanf("%c",&a[i][j]);}
		getchar();
	}
    scanf("%d",&m);
	m=m-1;
	while(m--)
	{memset(h,0,sizeof(h));
	for(j=1;j<=n;j++)
		{
			for(k=1;k<=n;k++)
			{
				if(a[j][k]=='@')
				{
					h[j][k]=1;
				}
			}
		}
		for(i=1;i<=n;i++)
		{
			for(k=1;k<=n;k++)
			{
				if(h[i][k]==1)
				{
					if(a[i][k+1]!='#')
						a[i][k+1]='@';
					if(a[i][k-1]!='#')
						a[i][k-1]='@';
					if(a[i-1][k]!='#')
						a[i-1][k]='@';
					if(a[i+1][k]!='#')
						a[i+1][k]='@';
				}
			}
		}
			for(i=0;i<=n+1;i++)
			{
				a[0][i]='#';
		        a[n+1][i]='#';
			}
	        for(i=0;i<=n+1;i++)
			{
		         a[i][0]='#';
		         a[i][n+1]='#';
			}
	}
	for(i=1;i<n+1;i++)
	{
		for(j=1;j<n+1;j++)
		{
			if(a[i][j]=='@')
				count++;
		}
	}
	printf("%d\n",count);

return 0;
}
int main()
{
	int n, m, g = 0;
	char a[100][100];
	cin >> n;
	for(int i = 0; i <= n - 1; i ++)
		for(int j = 0; j <= n - 1; j ++)
		{
			cin >> a[i][j];
			if(j == n - 1)
				cin.get();
		}
	cin >> m;
	for(int k = 1; k <= m - 1; k ++)
	{
		for(int q = 0; q <= n - 1; q ++)
			for(int w = 0; w <= n - 1; w ++)
			{
				if(a[q][w] == '@')
				{
					if(a[q - 1][w] == '.' && q - 1 >= 0)
						a[q - 1][w] = '^';
					if(a[q + 1][w] == '.' && q + 1 <= n - 1)
						a[q + 1][w] = '^';
					if(a[q][w - 1] == '.' && w - 1 >= 0)
						a[q][w - 1] = '^';
					if(a[q][w + 1] == '.' && w + 1 <= n - 1)
						a[q][w + 1] = '^';
				}
			}
		for(int t = 0; t <= n - 1; t ++)
			for(int y = 0; y <= n - 1; y ++)
				if(a[t][y] == '^')
					a[t][y] = '@';
	}
    for(int e = 0; e <= n - 1; e ++)
		for(int r = 0; r <= n - 1; r ++)
		{
			if(a[e][r] == '@')
				g++;
		}
	cout << g;
    return 0;
}
char temp='@';
int main()
{
    int n,m;
    char map[100][100];
    cin>>n;
    cin.get();
    int i,j,k;
    int x[4]={0,0,1,-1},y[4]={1,-1,0,0};
    for(i=0;i<n;i++)
    {
        cin.getline(map[i],100);
    }
    cin>>m;
    do
    {
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                if(map[i][j]==temp)
                {
                    for(k=0;k<4;k++)
                    {
                        if(i+x[k]>=0&&i+x[k]<n&&j+y[k]>=0&&j+y[k]<n&&map[i+x[k]][j+y[k]]=='.')
                        {
                            map[i+x[k]][j+y[k]]=temp+1;
                        }
                    }
                }
            }
        }
        temp=temp+1;
        m--;
    }
    while(m>1);
    int sign=0;
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            if(map[i][j]>='@')
            {
                sign=sign+1;
            }
        }
    }
    cout<<sign<<endl;
    return 0;
}
void f(int i,int n,char a[][500])
{
	if(i>1)
		f(i-1,n,a);
	int x=0,y=0;
	for(x=0;x<n;x++)
	{
		for(y=0;y<n;y++)
		{
			if(a[x][y]=='@')
			{
				if(a[x-1][y]=='.')
					a[x-1][y]='$';
				if(a[x+1][y]=='.')
					a[x+1][y]='$';					
				if(a[x][y-1]=='.')
					a[x][y-1]='$';					
				if(a[x][y+1]=='.')
					a[x][y+1]='$';
			}
		}
	}
	for(x=0;x<n;x++)
		for(y=0;y<n;y++)
			if(a[x][y]=='$')
				a[x][y]='@';
}
int main()
{
	int n=0,m=0,x=0,y=0,sum=0;
	cin>>n;
	char a[500][500]={0},b;
	b=getchar();
	for(x=0;x<n;x++)
	{
		for(y=0;;y++)
		{
			a[x][y]=getchar(); 	
			if(a[x][y]=='\n')
				break;
		}

	}
	cin>>m;
	f(m-1,n,a);
	for(x=0;x<n;x++)
		for(y=0;y<n;y++)
			if(a[x][y]=='@')
				sum++;
	cout<<sum;
	return 0;
}
main()
{
	char k[100];
	int a[100][100],i,j,l,n,d,t=0;
	scanf("%d",&n);
	k[0]=getchar();
	for(i=0;i<n;i++)
	{
		gets(k);
		for(j=0;j<n;j++)
		{
			if(k[j]=='.')
				a[i][j]=1;
			if(k[j]=='#')
				a[i][j]=0;
			if(k[j]=='@')
				a[i][j]=2;
		}
	}
	scanf("%d",&d);
	for(l=0;l<d;l++)
	{
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				if(a[i][j]==1)
				{
					if(i>0&&a[i-1][j]>=2&&a[i-1][j]<=l+1)
					{
						a[i][j]=l+2;
						continue;
					}
					if(i<n-1&&a[i+1][j]>=2&&a[i+1][j]<=l+1)
					{
						a[i][j]=l+2;
						continue;
					}
					if(j>0&&a[i][j-1]>=2&&a[i][j-1]<=l+1)
					{
						a[i][j]=l+2;
						continue;
					}
					if(j<n-1&&a[i][j+1]>=2&&a[i][j+1]<=l+1)
					{
						a[i][j]=l+2;
						continue;
					}
				}
			}
		}
	}

	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			if(a[i][j]>=2)
			t++;			
			printf("%d\n",t);
}
int main()
{
	int n,m,i,t,j,p=0;
	char a[102][102],c[101],b[102][102];
	scanf("%d",&n);
	for(i=0;i<n+2;i++)
	{
		for(j=0;j<n+2;j++)
		{
			a[i][j]='#';
			b[i][j]='#';
		}
	}

	for(i=0;i<n;i++)
	{
		scanf("%s",c);
	
		for(j=1;j<=n;j++)
		{
			a[i+1][j]=c[j-1];
			b[i+1][j]=c[j-1];
		}
	
	}
		scanf("%d",&m);
	
	for(i=1;i<m;i++)
	{
		for(t=1;t<=n;t++)
		{
			for(j=1;j<=n;j++)
			{
				if(a[t][j]=='@')
				{
					if(a[t-1][j]=='.')
						b[t-1][j]='@';
					if(a[t+1][j]=='.')
						b[t+1][j]='@';
					if(a[t][j+1]=='.')
						b[t][j+1]='@';
					if(a[t][j-1]=='.')
						b[t][j-1]='@';
				}
			}
		}
		
				for(t=1;t<=n;t++)
		{
			for(j=1;j<=n;j++)
			{
				a[t][j]=b[t][j];
		}
				}
	}
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			if(a[i][j]=='@')
				p++;
		}
	}
	printf("%d",p);
		return 0;
}
//**************************************
//* ???????                     *
//* ????? 1300017657              *
//* ???2013.11.12                   *
//**************************************

int main()
{
	int n, m, num = 0;
	char a[102][102], b[102][102];

	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
		{
			cin >> a[i][j];
			b[i][j] = a[i][j];
		}
	}
	cin >> m;

	for (int d = 1; d < m; d++)
	{
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= n; j++)
			{
				if (a[i][j] == '@')
				{
					if (a[i+1][j] == '.')
					{
						b[i+1][j] = '@';
					}
					if (a[i-1][j] == '.')
					{
						b[i-1][j] = '@';
					}
					if (a[i][j+1] == '.')
					{
						b[i][j+1] = '@';
					}
					if (a[i][j-1] == '.')
					{
						b[i][j-1] = '@';
					}
				}
			}
		}

		for (int p = 1; p <= n; p++)
		{
			for (int q = 1; q <= n; q++)
			{
				a[p][q] = b[p][q];
			}
		}
	}

	for (int r = 1; r <= n; r++)
	{
		for (int s = 1; s <= n; s++)
		{
			if (a[r][s] == '@') num++;
		}
	}

	cout << num;
	
	return 0;
}
char s[110][110],s1[110][110];
int main(){
	int n,i,m,j,ans,a,b;
	cin>>n;
	for (i=0;i<n;i++){
		cin>>s[i];
	}
	cin>>m;
	m--;
	while (m--){
		memcpy(s1,s,sizeof(s1));
		for (i=0;i<n;i++){
			for (j=0;j<n;j++){
				if (s[i][j]=='@'){
					a=i;
					b=j-1;
					if (a>=0&&a<n&&b>=0&&b<n){
						if (s[a][b]=='.'){
							s1[a][b]='@';
						}
					}
					a=i;
					b=j+1;
					if (a>=0&&a<n&&b>=0&&b<n){
						if (s[a][b]=='.'){
							s1[a][b]='@';
						}
					}
					a=i-1;
					b=j;
					if (a>=0&&a<n&&b>=0&&b<n){
						if (s[a][b]=='.'){
							s1[a][b]='@';
						}
					}
					a=i+1;
					b=j;
					if (a>=0&&a<n&&b>=0&&b<n){
						if (s[a][b]=='.'){
							s1[a][b]='@';
						}
					}
				}
			}
		}
		memcpy(s,s1,sizeof(s1));
	}
	ans=0;
	for (i=0;i<n;i++)
		for (j=0;j<n;j++)
			if (s[i][j]=='@')ans++;
	printf("%d\n",ans);
}
main()
{
int n,i,j,k,m;
char p[150][150];
char a[150][150];
for(i=0;i<150;i++)
   for(j=0;j<150;j++)
    {p[i][j]='0';a[i][j]='0';}
  
    scanf("%d",&n);
    i=1;j=1;
for(i=1;i<n+1;i++)
    
      {scanf("%s",p[i]);
          for(j=n;j>=1;j--)
             {
                           p[i][j]=p[i][j-1];
                           
                           }
                           p[i][0]='0';
      //printf("%c\n",p[i][j]);
      }

scanf("%d",&m);
//printf("%d\n",m);
   for(k=0;k<m-1;k++)
    {
 for(i=1;i<n+1;i++)  
  for(j=1;j<n+1;j++)
    {if(p[i][j]!='#')
      
        if(p[i+1][j]=='@'||p[i][j+1]=='@'||p[i-1][j]=='@'||p[i][j-1]=='@')
                  {a[i][j]='!';}
                  }  
        for(i=1;i<n+1;i++)  
      for(j=1;j<n+1;j++)           
     if(a[i][j]=='!')
             {p[i][j]='@';a[i][j]='0';}
}
int sum=0;
for(i=1;i<n+1;i++)
  for(j=1;j<n+1;j++)
   if(p[i][j]=='@')
    sum++;
    printf("%d",sum);
    
}
int main()
{
	int n,i,j,l,m,x,y,z=0;
	char a[100][100],b[100][100];
	cin>>n;
	for (i=0;i<=n-1;i++)
	{
		for (j=0;j<=n-1;j++)
		{
			cin>>a[i][j];
		}
	}
	cin>>m;
	for (l=1;l<=m-1;l++)
	{
	for (i=0;i<=n-1;i++)
	{
		for (j=0;j<=n-1;j++)
		{
			if (a[i][j]=='@')
			{
				for (x=-1;x<=1;x++)
				{
						if((a[i+x][j]=='.')&&(i+x<=n-1)&&(i+x>=0))
							b[i+x][j]='@';
				}
				for (y=-1;y<=1;y++)
				{
						if((a[i][j+y]=='.')&&(j+y<=n-1)&&(j+y>=0))
							b[i][j+y]='@';
				}
			}
		}
	}
	for (i=0;i<=n-1;i++)
	{
		for (j=0;j<=n-1;j++)
		{
			if(b[i][j]=='@')
				a[i][j]='@';
		}
	}

	}
	for (i=0;i<=n-1;i++)
	{
		for (j=0;j<=n-1;j++)
		{
			if	(a[i][j]=='@')
				z++;
		}
	}
	cout<<z;
	cin.get();cin.get();
	return 0;
}
//******************
//????**********
int main()
{
	int n,m,i=0,j=0,sum=0;
	cin>>n;
	char a[102][102];
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			cin>>a[i][j];
	cin>>m;
	for(int M=1;M<m;M++)
	{
		for(i=1;i<=n;i++)
			{
				for(j=1;j<=n;j++)
			   {
				  if(a[i][j]=='@')
					{
						if(a[i-1][j]=='.')  a[i-1][j]='$';
						if(a[i+1][j]=='.')  a[i+1][j]='$';
						if(a[i][j-1]=='.')  a[i][j-1]='$';
						if(a[i][j+1]=='.')  a[i][j+1]='$';
				    }
				}
		    }
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				{
					if(a[i][j]=='$')
						a[i][j]='@';
			    }
	}
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
		{
			if(a[i][j]=='@')
			sum=sum+1;
		}
		cout<<sum<<endl;
		return 0;
}
int main()
{
int n,m,i,j,k,s=0,b[120][120];char a[200][200];
for(i=0;i<=119;i++)
 for(j=0;j<=119;j++)
   b[i][j]=-1;
cin>>n;
for(i=1;i<=n;i++)
  for(j=1;j<=n;j++)
   cin>>a[i][j];
cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
  {
    if(a[i][j]=='.')
     b[i][j]=0;
     if(a[i][j]=='@')
     b[i][j]=1;
         }
for(k=1;k<=m-1;k++)
{
  for(i=1;i<=n;i++)
   for(j=1;j<=n;j++)
    {
      if(b[i][j]==1)
        {
          if(b[i][j-1]==0)
             b[i][j-1]=2;
          if(b[i][j+1]==0)
             b[i][j+1]=2;
          if(b[i+1][j]==0)
            b[i+1][j]=2;
          if(b[i-1][j]==0)
           b[i-1][j]=2;
        }
     }
  for(i=1;i<=n;i++)
   for(j=1;j<=n;j++)
    if(b[i][j]==2)
      b[i][j]=1;
  
}
 for(i=1;i<=n;i++)
   for(j=1;j<=n;j++)
    if(b[i][j]==1)
   s=s+1;
cout<<s;
return 0;
}
int main()
{
	int n,m,m1,i,j,k;
	char a[100][100];
	int b[100][100],sum[100],c[100][100];
	for(i=0;i<100;i++)
	{
		sum[i]=0;
	}
	cin>>n;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
			{
				cin>>a[i][j];
		        if(a[i][j]=='.')
				{
					b[i][j]=1;
				}
				if(a[i][j]=='#')
				{
					b[i][j]=0;
				}
				if(a[i][j]=='@')
				{
					b[i][j]=-1;
				}
		}
	}
	cin>>m1;
	m=m1;
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
			for(k=0;k<n;k++)
			{
				if(b[j][k]==0)
				{continue;}
				else
				{
					if(b[j-1][k]==-1||b[j+1][k]==-1||b[j][k-1]==-1||b[j][k+1]==-1)
					{
						c[j][k]=-1;
					}
				}
			}
		}
		
		for(j=0;j<n;j++)
		{
			for(k=0;k<n;k++)
			{
				                   
				if(b[j][k]==-1)
					sum[i]=sum[i]+1;
				               
			}
		}
		for(j=0;j<n;j++)
		{
			for(k=0;k<n;k++)
			{
				
				if(c[j][k]==-1)
				{
					b[j][k]=-1;
				}
			}
		}
	}
	cout<<sum[m-1];
}