semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int b[100][100];
void circle ( int array[100][100], int row, int col )
{
	int i;
	for ( i = 0; i < col; i ++ )
		cout << array[0][i] << endl;
	for ( i = 1; i < row; i ++ )
		cout << array[i][col-1] << endl;
	for ( i = col - 2; i >= 0; i -- )
	{
		if ( row > 1 )
			cout << array[row-1][i] << endl;
	}
	for ( i = row - 2; i > 0; i -- )
	{
		if ( col > 1 )
			cout << array[i][0] << endl;
	}
}
void change ( int array[100][100], int row, int col )
{
	int i, j;
	for ( i = 0; i < row - 2; i ++ )
	{
		for ( j = 0; j < col - 2; j ++ )
		{
			b[i][j] = array[i+1][j+1];
		}
	}
}

int main ()
{
	int i, j, row, col, array[100][100], k = 0;
	cin >> row >> col;
	for ( i = 0; i < row; i ++ )
	{
		for ( j = 0; j < col; j ++ )
		{
			cin >> array[i][j];
			b[i][j] = array[i][j];
		}
	}
	if ( row > col )
	{
		for ( k = 0; k < col; k = k + 2 )
		{
			circle( b, row - k, col - k );
			change( b, row - k, col - k );
		}
	}
	else
	{
		for ( k = 0; k < row; k = k + 2 )
		{
			circle( b, row - k, col - k );
			change( b, row - k, col - k );
		}
	}
	return 0;
}
void main()
{
	int a[100][100];
	int i,j,row,col,n=0;
	scanf("%d%d",&row,&col);
	for(i=0;i<row;i++)
	{
		scanf("%d",&a[i][0]);
		for(j=1;j<col;j++)
		{
			scanf(" %d",&a[i][j]);
		}
	}
	for(i=0;;i++)
	{
		for(j=i;j<col-i;j++,n++)
			printf("%d\n",a[i][j]);
		if(n==row*col)
			break;
		for(j=i+1;j<row-i;j++,n++)
			printf("%d\n",a[j][col-i-1]);
		if(n==row*col)
			break;
		for(j=col-i-2;j>i;j--,n++)
			printf("%d\n",a[row-i-1][j]);
		if(n==row*col)
			break;
		for(j=row-i-1;j>i;j--,n++)
			printf("%d\n",a[j][i]);
		if(n==row*col)
			break;
	}
}
int main()
{
	int n, sz[number][number], j, k, i, l, mc, a, b, go;
	scanf("%d%d", &a, &b);
    for(go=0;go<a;go++)
	{
		for(i=0;i<b;i++)
		{
			scanf("%d", &(sz[go][i]));
		}
	}
	for(i=0;i<a;i++)
	{
		if(a<b&&a%2==0&&i*2+2>=a)
		{
			for(l=i;l<=b-i-1;l++)
    		    printf("%d\n", sz[i][l]);
 	    	for(l=i+1;l<=a-i-1;l++)
    		    printf("%d\n", sz[l][b-1-i]);
    		for(l=b-i-2;l>=i;l--)
	    	    printf("%d\n", sz[a-1-i][l]);
			break;
		}
		if(a<b&&a%2!=0&&i*2+2>=a)
		{
	        for(l=i;l<=b-i-1;l++)
	    	    printf("%d\n", sz[i][l]);
			break;
		}
		if(a>b&&b%2!=0&&i*2+2>=b)
		{
			for(l=i;l<=b-i-1;l++)
	    	    printf("%d\n", sz[i][l]);
    		for(l=i+1;l<=a-i-1;l++)
    		    printf("%d\n", sz[l][b-1-i]);
			break;
		}
        for(l=i;l<=b-i-1;l++)
		    printf("%d\n", sz[i][l]);
		for(l=i+1;l<=a-i-1;l++)
		    printf("%d\n", sz[l][b-1-i]);
		for(l=b-i-2;l>=i;l--)
		    printf("%d\n", sz[a-1-i][l]);
		for(l=a-i-2;l>i;l--)
		    printf("%d\n", sz[l][i]);
	}
	return 0;
}
int shuzu[100][100];

	
int main (){
	int line,row;
	cin >> line>>row ;
	for(int i=0;i<line;i++)
		for(int j=0;j<row;j++)
			cin >> shuzu[i][j];
/*	if(shuzu[x][y-1]==-1&&shuzu[x][y+1]==-1&&shuzu[x-1][y]==-1&&shuzu[x+1][y]==-1)
		return ;
		*/
	int a,b,sum=0,allg;
	int x=0,y=row-1,i=0,j=line-1;
	while(sum<(allg=row*line))
	{
		for(a=x;a<=y;a++)
		{
		cout <<shuzu[i][a]<<endl;
		sum++;
		if(sum==allg)
			return 0;
		}
	i++;
	for(b=i;b<=j;b++)
		{
		cout <<shuzu[b][y]<<endl;
		sum++;
		if(sum==allg)
			return 0;
		}
	y--;
	for(a=y;a>=x;a--)
		{
		cout <<shuzu[j][a]<<endl;
		sum++;
		if(sum==allg)
			return 0;
		}
	j--;
	for(b=j;b>=i;b--)
		{
		cout << shuzu[b][x]<<endl;
		sum++;
		if(sum==allg)
			return 0;
		}
	x++;
		}
	return 0;
}
int main()
{
	int row,col; //row????col???
	int i,j;//????
	int a[100][100];// ????????
	cin>>row>>col;
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
			cin>>a[i][j];
	}
	int m,n,t;//m???????n??????,t?????
	m=row;
	n=col;
	t=0;
	for(t=0;(t<n-t)&&(t<m-t);t++)
	{
		for(i=t,j=t;j<n-t;j++)
		{
			cout<<a[i][j]<<endl;
		}
		if(j==t) break;

	    for(i=1+t,j=n-t-1;i<m-t;i++)
		{
	    	cout<<a[i][j]<<endl;

		}
	    if(i==1+t) break;

	    for(i=m-t-1,j=n-2-t;j>=t;j--)
	    {
	    	cout<<a[i][j]<<endl;

	    }
        if(j==n-2-t) break;
	    for(i=m-2-t,j=t;i>=1+t;i--)
		{
	    	cout<<a[i][j]<<endl;

		}

	}
	return 0;

}
int  main(){
int  sz[100][100]; 
int m,n,b=0;

int i,j,c=0;
scanf("%d%d",&m,&n);
b=m*n;
for(i=0;i<m;i++){                                                                                                                                                                                                           
			for(int j=0;j<n;j++)
				scanf("%d",&sz[i][j]);
}
for(int h=0;;h++)
{
for(j=0+h;j<n-h;j++){
printf("%d\n",sz[h][j]);c++;}
if  (b==c)   break; 
for(i=1+h;i<m-h;i++){
printf("%d\n",sz[i][n-1-h]);c++;}
if  (b==c)   break;
for(j=n-2-h;j>=0+h;j--){
printf("%d\n",sz[m-1-h][j]);c++;}
if  (b==c)   break; 
for(i=m-2-h;i>h;i--){
printf("%d\n",sz[i][h]);c++;}
if  (b==c)   break;
}
return 0;

}
void main()
{
	int array[100][100],row,col,n,count=0,i,j,k,*p;
	scanf("%d%d",&row,&col);
	n=row*col;
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			scanf("%d",&array[i][j]);
		}
	}
	for(k=0;;k++)
	{
		for(p=array[k]+k;p<array[k]+col-k-1;p++)
		{
			printf("%d\n",*p);
			count++;
		}
		if(count==n)
			break;
		for(i=k;i<row-k;i++)
		{
			printf("%d\n",*(*(array+i)+col-k-1));
			count++;
		}
		if(count==n)
			break;
		for(i=col-k-2;i>=k;i--)
		{
			printf("%d\n",*(*(array+row-k-1)+i));
			count++;
		}
		if(count==n)
			break;
		for(i=row-k-2;i>k;i--)
		{
			printf("%d\n",*(*(array+i)+k));
            count++;
		}
		if(count==n)
			break;
	}
}
int main ()
{
	int row, col, a[105][105],i, j, k, min;
	cin >> row >> col;
	for (i = 0; i < row; i ++ )
	{
		for (j = 0; j < col; j ++)
		{
			cin >> a[i][j];
		}
	}
	if (row < col)
		min = row;
	else 
		min = col;
	if (min % 2 == 0)
		min = min / 2;
	else
		min = min / 2 + 1;
	for (k = 0; k < min; k ++)
	{
		for (j = k; j < col - k; j ++)
		{
			cout << a[k][j] << endl;
		}
		for (i = k + 1; i < row - k ; i ++)
		{
			cout << a [i][col - k -1] << endl;
		}
		for (j = col - 2 - k; j >= k && (row - k - 1 > k); j --)
		{
			cout << a [row - k - 1][j] << endl;
		}
		for (i = row - 2 - k; i >= 1 + k && (col - k - 1 > k); i -- )
		{
			cout << a [i][k] << endl;
		}
	}
	return 0;
}
int main(int argc, char *argv[])
{
  int i,j,x,y,z;
   int a[100][100],b[100][100]={0};
   scanf("%d%d",&x,&y);
   for(i=0;i<x;i++)
     {
       for(j=0;j<y;j++) 
       scanf("%d",&a[i][j]);
     }
     while(x>0)
  {
     for(j=0;j<y;j++)
    printf("%d\n",a[0][j]);
   for(i=0;i<y;i++)
         {
            for(j=0;j<x;j++)
             b[i][j]=a[j+1][y-1-i];
         } 
    for(i=0;i<y;i++)
         {
            for(j=0;j<x;j++)
             a[i][j]=b[i][j];
         }
    z=x;
    x=y;
    y=z-1;    
  }            	
  return 0;
}
int main()
{
    int a[101][101],i,j;
    int b[101][101]={1};
    int col,row;
    int x=0,y=0;
    scanf("%d %d",&row,&col);
    for(i=0;i<row;++i)
        for(j=0;j<col;++j)
            scanf("%d",a[i]+j);
    printf("%d\n",a[0][0]);
    while(1)
    {
        if(b[x][++y]!=0)
            break;
        while((b[x][y]==0) && (y<col))
        {
            printf("%d\n",a[x][y]);
            b[x][y]=1;
            ++y;
        }
        --y;
        if(b[++x][y]!=0)
            break;
        while((b[x][y]==0) && (x<row))
        {
            printf("%d\n",a[x][y]);
            b[x][y]=1;
            ++x;
        }
        --x;
        if(b[x][--y]!=0)
            break;
        while((b[x][y]==0) && (y>=0))
        {
            printf("%d\n",a[x][y]);
            b[x][y]=1;
            --y;
        }
        ++y;
        if(b[--x][y]!=0)
            break;
        while((b[x][y]==0) && (x>=0))
        {
            printf("%d\n",a[x][y]);
            b[x][y]=1;
            --x;
        }
        ++x;
    }
    return 0;
}
int main()
{
    int a[100][100];
    int flag[100][100] = {0};
    int i, j, row, col;
    int count = 0;
    cin >> row >> col;
    for (i = 0; i < row; i++)
     for (j = 0; j < col; j++)
     {
          cin >> a[i][j];
     }
    int hang1 = 0;
    int hang2 = row - 1;
    int lie1 = col - 1;
    int lie2 = 0;
    while (count < row * col)
    {
           for (j = 0; j < col; j++)
           { 
                if (flag[hang1][j] == 0)
                {
                    cout << a[hang1][j] << endl;
                    count++;
                    flag[hang1][j] = 1;
                }
           }
           hang1++;
           for (i = 0; i < row; i++)
           { 
                if (flag[i][lie1] == 0)
                {
                    cout << a[i][lie1] << endl;
                    count++;
                    flag[i][lie1] = 1;
                }
           }
           lie1--;
           for (j = col - 1; j >= 0; j--)
           { 
                if (flag[hang2][j] == 0)
                {
                    cout << a[hang2][j] << endl;
                    count++;
                    flag[hang2][j] = 1;
                }
           }
           hang2--;
           for (i = row - 1; i >= 0; i--)
           { 
                if (flag[i][lie2] == 0)
                {
                    cout << a[i][lie2] << endl;
                    count++;
                    flag[i][lie2] = 1;
                }
           }
           lie2++;
    }
    return 0;
}
int main(){
    int row,cow;
    scanf("%d%d",&row,&cow);
    int array[row][cow];
    for(int i=0;i<row;i++){
        for(int k=0;k<cow;k++){
            scanf("%d",&array[i][k]);
        }
    }
    int time=0;
    for(int i=0;i<100;i++){
        for(int m=i;m<cow-i;m++){
            printf("%d\n",array[i][m]);
            time++;
        }
        if(time==row*cow){
            break;
        }
        for(int n=i+1;n<row-i;n++){
            printf("%d\n",array[n][cow-i-1]);
            time++;
        }
        if(time==row*cow){
            break;
        }
        for(int j=cow-2-i;j>=i;j--){
            printf("%d\n",array[row-i-1][j]);
            time++;
        }
        if(time==row*cow){
            break;
        }
        for(int l=row-2-i;l>=i+1;l--){
            printf("%d\n",array[l][i]);
            time++;
        }
        if(time==row*cow){
            break;
        }
    }
  return 0;
}
main()
{
	int a[100][100];
	int row,col,i,j,temp[4]={1,0,1,0},flag=0,t;
	scanf("%d%d",&row,&col);
	temp[1]=row-2;
	temp[3]=col-2;
	for(i=0;i<row;i++){
		for(j=0;j<col;j++){
			scanf("%d",&a[i][j]);
		}
	}

	
	if(row!=1&&col!=1){

	
		
	i=0;j=0;p(a[0][0]);
	while((temp[0]-temp[1])*(int)pow(-1,flag)<0 && (temp[2]-temp[3])*(int)pow(-1,flag)<0){

		if(col<=3) {break;}

		for(j=temp[2];(j-temp[3])*(int)pow(-1,flag)<=0;j+=(int)pow(-1,flag)){
			p(a[i][j]);
		}
		p(a[i][j]);

		for(i=temp[0];(i-temp[1])*(int)pow(-1,flag)<=0;i+=(int)pow(-1,flag)){
			p(a[i][j]);
		}
		p(a[i][j]);

		t=temp[0];temp[0]=temp[1];temp[1]=t;
		t=temp[2];temp[2]=temp[3];temp[3]=t;
		flag++;

		for(j=temp[2];(j-temp[3])*(int)pow(-1,flag)<=0;j+=(int)pow(-1,flag)){
			p(a[i][j]);
		}
		p(a[i][j]);

		for(i=temp[0];(i-temp[1])*(int)pow(-1,flag)<=0;i+=(int)pow(-1,flag)){
			p(a[i][j]);
		}
		p(a[i+1][j+1]);


		t=temp[0];temp[0]=temp[1];temp[1]=t;
		t=temp[2];temp[2]=temp[3];temp[3]=t;

		temp[0]++;temp[2]++;temp[1]--;temp[3]--;
		i++;

		flag++;
	}

	if(col==3) j--;
	if(temp[0]==temp[1]){
		i=i+1;
		for(j=temp[2];j<=temp[3];j++) p(a[i-1][j]);j--;
		p(a[i-1][j+1]);p(a[i][j+1]);p(a[i+1][j+1]);
		for(j=temp[3];j>=temp[2];j--) p(a[i+1][j]);j++;
		p(a[i+1][j-1]);p(a[i][j-1]);
		for(j=temp[2];j<=temp[3];j++) p(a[i][j]);
	}

	else if(temp[2]==temp[3]){
		j=j+2;
		p(a[temp[0]-1][j]);p(a[temp[0]-1][j+1]);
		for(i=temp[0];i<=temp[1]+1;i++) p(a[i][j+1]);i--;
		p(a[i][j]);
		for(i=temp[1]+1;i>=temp[0];i--) p(a[i][j-1]);i++;
		for(i=temp[0];i<=temp[1];i++) p(a[i][j]);
	}
	
	else if(abs(temp[2]-temp[3])==1 && abs(temp[0]-temp[1])!=1){
		for(j=temp[2]+1;j<=temp[3];j++) p(a[i][j]);i++;
		for(j=temp[3];j>=temp[2];j--) p(a[i][j]);
	}

	else{
		p(a[i][j+2]);p(a[i+1][j+2]);p(a[i+1][j+1]);
	}

	if(row==2){
		for(i=1;i<col;i++) p(a[0][i]);
		for(i=col-1;i>=0;i--) p(a[1][i]);
	}

	if(col==2){
		for(i=0;i<row;i++) p(a[i][1]);
		for(i=row-1;i>0;i--) p(a[i][0]);
	}


	}

	else if(row==1&&col==1) p(a[0][0]);
	else if(row==1||col==1){
		p(a[0][0]);
		if(row==1) for(i=1;i<col;i++) p(a[0][i]);
		if(col==1) for(i=1;i<row;i++) p(a[i][0]);
	}

}
void main()
{
	int m,n;
	int a[100][100]={0};
	int b[100][100]={0};
	int i,j;
	int k,te;

	scanf("%d%d",&m,&n);

	for(i=0;i<m;i++)
		for(j=0;j<n;j++)
			scanf("%d",&a[i][j]);

	int u=0;

	int tem=0;
	for(i=0;i<m*n;)
	{
		if(u%4==0)
		{
			j=tem;
			for(k=0;k<n;k++)
				if(b[j][k]==0)
				{
					printf("%d\n",a[j][k]);
					te=k;
					b[j][k]=1;
					i++;
				}
		}
		if(u%4==1)
		{
			k=te;
			for(j=0;j<m;j++)
				if(b[j][k]==0)
				{
					printf("%d\n",a[j][k]);
					tem=j;
					b[j][k]=1;
					i++;
				}
		}

		if(u%4==2)
		{
			j=tem;
			for(k=n-1;k>=0;k--)
				if(b[j][k]==0)
				{
					printf("%d\n",a[j][k]);
					te=k;
					b[j][k]=1;
					i++;
				}
		}
		if(u%4==3)
		{
			k=te;
			for(j=m-1;j>=0;j--)
				if(b[j][k]==0)
				{
					printf("%d\n",a[j][k]);
					tem=j;
					b[j][k]=1;
					i++;
				}
		}
		u++;


	}
}
int main()
{
    int row, col, a[100][100], t = 0, sum, n = 0;
    cin >> row >> col;
    
    for (int i = 0; i <= row - 1; i++)
    {
        for (int j = 0; j <= col - 1; j++)
        {
            cin >> a[i][j];
        }
    }
    
    sum = row * col;
    while (1)
    {
        for (int i = n; i < col - n; i++)
        {
            cout << a[n][i] << endl;
            t++;
        }
        if (t == sum) break;
        for (int i = n + 1; i < row - n; i++)
        {
            cout << a[i][col - n - 1] << endl;
t++;
        }
        if (t == sum) break;
        for (int i = col - n - 2; i >= n; i--)
        {
            cout << a[row - n - 1][i] << endl;
            t++;
        }
        if (t == sum) break;
        for (int i = row - n - 2; i > n; i--)
        {
            cout << a[i][n] << endl;
            t++;
        }
        if (t == sum) break;
        n++;
    }
    return 0;
}
int main()
{int n,m,v[100][100],z,d;
 scanf("%d %d",&m,&n);
 for(int i=0;i<=m-1;i++)
   {for(int j=0;j<=n-1;j++)
       {scanf("%d",&(v[i][j]));}
   }
  
   
int p=0,u=n;  
if(m>n){u=m;} 
for(int i=0;i<=u;i++)
  {   
      for(int d=i;d<=n-i-1;d++)
        {
        printf("%d\n",v[i][d]);
         p++;if(p==m*n){break;}
        } 
      for(int a=i+1;a<=m-i-1;a++)
       {
         printf("%d\n",v[a][n-1-i]);
          p++;if(p==m*n){break;}
        }
      if(p==m*n){break;}
      for(int b=n-i-2;b>=i;b--)
        {
        printf("%d\n",v[m-i-1][b]);
        p++;if(p==m*n){break;}
        }
       if(p==m*n){break;}
     for(int c=m-i-2;c>=i+1;c--)
     {
        printf("%d\n",v[c][i]);
       p++;
       if(p==m*n){break;}
     }  
     if(p==m*n){break;}
  }  
return 0; 

}
int array[100][100];
int main()
{
	int row,col,i,j,k,c,count=0;
	cin>>row>>col;
	for (i=1;i<=row;i++)
		for (j=1;j<=col;j++)
			cin>>array[i][j];
	c=row*col;
	for (k=1,i=1,j=1;k<=c;k++)
	{
		count++;
		cout<<array[i][j]<<endl;
		if (count<col)
			j++;
		else if (count==col||count<col+row-1)
			i++;
		else if (count==col+row-1||count<2*col+row-2)
			j--;
		else if (count==2*col+row-2||count<(col+row)*2-4)
			i--;
		else
		{
			j++;
			row-=2;col-=2;count=0;
		}
	}
	return 0;
}
int main() {
	int i, j,r,c,x,y,a[110][110];
	for (i=0;i<110;i++) for (j=0;j<110;j++) a[i][j]=-1;
	for (scanf("%d%d", &r, &c), i = 1; i <=r; i++)
		for (j = 1; j <= c; j++) scanf("%d", &a[i][j]);
	for (i=j=1,x=0,y=1;a[i][j]!=-1;i+=x,j+=y){
		printf("%d\n",a[i][j]);
		a[i][j]=-1;
		if (a[i+x][j+y]==-1){
			r = y;
			y= -x;
			x=r;
		}
	}
}
int sign[100][100]={0},arr[100][100];
void right(int i,int j)
{
	void down(int i,int j);
	printf("%d\n",arr[i][j]);
	sign[i][j]=0;
	if(sign[i][j+1]!=0)
	{
		right(i,j+1);
	}
	else
	{
		if(sign[i+1][j]!=0)
		{
			down(i+1,j);
		}
	}
}
void left(int i,int j)
{
	void up(int i,int j);
	printf("%d\n",arr[i][j]);
	sign[i][j]=0;
	if(sign[i][j-1]!=0&&j>0)
	{
		left(i,j-1);
	}
	else
	{
		if(sign[i-1][j]!=0)
		{
			up(i-1,j);
		}
	}
}
void up(int i,int j)
{
	void right(int i,int j);
	printf("%d\n",arr[i][j]);
	sign[i][j]=0;
	if(sign[i-1][j]!=0&&i>0)
	{
		up(i-1,j);
	}
	else
	{
		if(sign[i][j+1]!=0)
		{
			right(i,j+1);
		}
	}
}
void down(int i,int j)
{
	void left(int i,int j);
	printf("%d\n",arr[i][j]);
	sign[i][j]=0;
	if(sign[i+1][j]!=0)
	{
		down(i+1,j);
	}
	else
	{
		if(sign[i][j-1]!=0)
		{
			left(i,j-1);
		}
	}
}
int main()
{
	void left(int i,int j);
	void right(int i,int j);
	void up(int i,int j);
	void down(int i,int j);
	int row,col,i,j;
	scanf("%d %d",&row,&col);
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			scanf("%d",&arr[i][j]);
			sign[i][j]=1;
		}
	}
	right(0,0);
	return 0;
}
int main()
{
	int array[100][100]={0};
	int x,y;
	cin>>x>>y;
	for(int i=0;i!=x;i++)
		for(int j=0;j!=y;j++)
			cin>>array[i][j];
	int x1=0,x2=x-1,y1=0,y2=y-1;
	while(x2>=x1&&y2>=y1)
	{
		if(x2==x1&&y2==y1)
			cout<<array[x1][y1]<<endl;
		else if(x2==x1)
		{
			for(int k=y1;k<=y2;k++)
				cout<<array[x1][k]<<endl;
		}
		else if(y1==y2)
		{
			for(int k=x1;k<=x2;k++)
				cout<<array[k][y1]<<endl;
		}
		else
		{
			for(int k=y1;k<y2;k++)
		    	cout<<array[x1][k]<<endl;
		    for(int k=x1;k<x2;k++)
		    	cout<<array[k][y2]<<endl;
		    for(int k=y2;k>y1;k--)
		    	cout<<array[x2][k]<<endl;
		    for(int k=x2;k>x1;k--)
		    	cout<<array[k][y1]<<endl;
		}
	  	x1++;
	   	x2--;
	   	y1++;
    	y2--;
	    
	}
	return 0;
}
int main(){
   int a,b,i,j,k;
   int s[100][100];
   scanf("%d %d",&a,&b);
   for(i=0;i<a;i++){
       for(j=0;j<b;j++){
           scanf("%d",&s[i][j]);
       }
   }
   for(k=0;k<a*1.0/2&&k<b*1.0/2;k++){
       if(b<=a&&k*2==b-1){
            for(i=k;i<=a-k-1;i++){
                 printf("%d\n",s[i][k]);
            }
       }else if(a<b&&k*2==a-1){
            for(j=k;j<=b-k-1;j++){
                 printf("%d\n",s[k][j]);
            }
       }else{
            for(j=k;j<=b-k-1;j++){
                 printf("%d\n",s[k][j]);
            }
            for(i=k+1;i<=a-k-1;i++){
                 printf("%d\n",s[i][b-k-1]);
            }
            for(j=b-k-2;j>=k;j--){
                 printf("%d\n",s[a-k-1][j]);
            }
            for(i=a-k-2;i>=k+1;i--){
                 printf("%d\n",s[i][k]);
            }
       }
   }
   return 0;
}
int main()
{
	int a[100][100];
	int m,n,i,j;
	int mini,maxi,minj,maxj;
	int time,count=0;;
	scanf("%d %d",&m,&n);
	for (i=0;i<m;i++)
	{
		for (j=0;j<n;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	mini=0;
	maxi=m-1;
	minj=0;
	maxj=n-1;
	for (time=1;count<m*n;time++)
	{
		switch (time%4)
		{
		  case 1:
			  {
				  for (i=mini,j=minj;j<=maxj;j++)
				  {
					  printf("%d\n",a[i][j]);
					  count++;
				  }
				  mini++;
				  break;
			  }
		  case 2:
			  {
				  for (j=maxj,i=mini;i<=maxi;i++)
				  {
					  printf("%d\n",a[i][j]);
					  count++;
				  }
				  maxj--;
				  break;
			  }
		  case 3:
			  {
				  for (i=maxi,j=maxj;j>=minj;j--)
				  {
					  printf("%d\n",a[i][j]);
					  count++;
				  }
				  maxi--;
				  break;
			  }
		  case 0:
			  {
				  for (j=minj,i=maxi;i>=mini;i--)
				  {
					  printf("%d\n",a[i][j]);
					  count++;
				  }
				  minj++;
				  break;
			  }
		}
	}
	return 0;
}
int A[100][100]={0};
void shuchu1(int a,int b,int c,int d)//a<b&&c<d
{
	for(int i=c;i<=d;i++)
	{
		cout<<A[a][i]<<endl;
	}
	for(int i=a+1;i<=b;i++)
	{
		cout<<A[i][d]<<endl;
	}
	for(int i=d-1;i>=c;i--)
	{
		cout<<A[b][i]<<endl;
	}
	for(int i=b-1;i>=a+1;i--)
	{
		cout<<A[i][c]<<endl;
	}
}
void shuchu2(int a,int b,int c,int d)//a==b&&c<d
{
	for(int i=c;i<=d;i++)
	{
		cout<<A[a][i]<<endl;
	}
	
}
void shuchu3(int a,int b,int c,int d)//c==d&&a<b
{
	for(int i=c;i<=d;i++)
	{
		cout<<A[a][i]<<endl;
	}
	for(int i=a+1;i<=b;i++)
	{
		cout<<A[i][d]<<endl;
	}
	
}
void shuchu4(int a,int b,int c,int d)//a==b&&c==d
{
	cout<<A[a][c]<<endl;
}
int main()
{
	
	int row,col;
	cin>>row>>col;
	for(int i=0;i<row;i++)//?????????
	{
		for(int j=0;j<col;j++)
		{
			cin>>A[i][j];
		}
	}
	int a=0;
	int c=0;
	int b=row-1;
	int d=col-1;
	while(b>=a&&d>=c)
	{
		if(a<b&&c<d)
		{
			shuchu1(a,b,c,d);
		}
		if(a==b&&c<d)
		{
			shuchu2(a,b,c,d);
		}
		if(c==d&&a<b)
		{
			shuchu3(a,b,c,d);
		}
		if(a==b&&c==d)
		{
			shuchu4(a,b,c,d);
		}
		a++;b--;c++;d--;
	}
	
	return 0;//????

}
int main(){
  int h,l,i,j,k=0,n,m=0;
  scanf("%d%d",&h,&l);
  int p[h][l];
  for(i=0;i<h;i++){
    for(j=0;j<l;j++){
      scanf("%d", &p[i][j]);
    }
  }
  i=0;j=0;
for(n=0;;){
  while(j<l-k){
    if(n==h*l-1){printf("%d",p[i][j]);m=1;break;}else{printf("%d\n",p[i][j]);n++;}
    j++;
  }j--;i++;if(m==1){break;}
  while(i<h-k){
    if(n!=h*l-1){printf("%d\n",p[i][j]);n++;}else{printf("%d",p[i][j]);m=1;break;}
    i++; 
  }i--;j--;if(m==1){break;}
  while(j-k>=0){
    if(n!=h*l-1){printf("%d\n",p[i][j]);n++;}else{printf("%d",p[i][j]);m=1;break;}
    j--;
  }j++;i--;k++;if(m==1){break;}
  while(i-k>=0){
    if(n!=h*l-1){printf("%d\n",p[i][j]);n++;}else{printf("%d",p[i][j]);m=1;break;}
    i--;
  }i++;j++;if(m==1){break;}
}
  return 0;
}
int main(){
	int sz[100][100],col,row,i,k,count=0;
	scanf("%d%d",&row,&col);
	for(i=0;i<row;i++){
		for(k=0;k<col;k++){
			scanf("%d",&sz[i][k]);
		}
	}
	i=0;
	k=0;
	for(1;1;1){
		for(k=k;k<col;k++){
			printf("%d\n",sz[i][k]);
			sz[i][k]=0;
			count++;
			if(sz[i][k+1]==0||k+1==col){
				i=i+1;
				break;
			}
		}
		if(count>=col*row){
			break;
		}
		for(i=i;i<row;i++){
			printf("%d\n",sz[i][k]);
			sz[i][k]=0;
			count++;
			if(sz[i+1][k]==0||i+1==row){
				k=k-1;
				break;
			}
		}
		if(count>=col*row){
			break;
		}
		for(k=k;k>=0;k--){
			printf("%d\n",sz[i][k]);
			sz[i][k]=0;
			count++;
			if(sz[i][k-1]==0||k==0){
				i=i-1;
				break;
			}
		}
		if(count>=col*row){
			break;
		}
		for(i=i;i>=0;i--){
			printf("%d\n",sz[i][k]);
			sz[i][k]=0;
			count++;
			if(sz[i-1][k]==0||i==0){
				k=k+1;
				break;
			}
		}
		if(count>=col*row){
			break;
		}
	}
	return 0;
}
int main(){
	int n,ROW,COL,a,b;
	int sz[100][100];
	scanf("%d%d",&ROW,&COL);
	for(a=0;a<ROW;a++){
		for(b=0;b<COL;b++){
			scanf("%d",&sz[a][b]);
		}
	}
	if(ROW>COL)
		n=COL;
	else 
		n=ROW;
	int i,s,t,p,q;
	if(n%2==0){
	for(i=0;i<(n+1)/2;i++){
		for(s=i;s<COL-i;s++){
			printf("%d\n",sz[i][s]);
		}
		for(t=i+1;t<ROW-i;t++){
			printf("%d\n",sz[t][COL-i-1]);
		}
		for(p=COL-i-2;p>=i;p--){
			printf("%d\n",sz[ROW-i-1][p]);
		}
		for(q=ROW-i-2;q>i;q--){
			printf("%d\n",sz[q][i]);
		}
	}
	}
	else if(n%2==1){
		for(i=0;i<(n-1)/2;i++){
		for(s=i;s<COL-i;s++){
			printf("%d\n",sz[i][s]);
		}
		for(t=i+1;t<ROW-i;t++){
			printf("%d\n",sz[t][COL-i-1]);
		}
		for(p=COL-i-2;p>=i;p--){
			printf("%d\n",sz[ROW-i-1][p]);
		}
		for(q=ROW-i-2;q>i;q--){
			printf("%d\n",sz[q][i]);
		}
	}
		for(i=(n-1)/2;i<=(n-1)/2;i++){
            for(s=i;s<COL-i;s++){
			printf("%d\n",sz[i][s]);
		}
		for(t=i+1;t<ROW-i;t++){
			printf("%d\n",sz[t][COL-i-1]);
		}
		}
	}
	return 0;
}
void main()
{
	int a[100][100];
	int b,c,d,i,j,e;
	scanf("%d %d",&b,&c);
	for (i=0;i<b;i++)
	{
		for (j=0;j<c;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	
	if (b<c)
		d=b;
	if(b>=c)
		d=c;
	if (d%2==0)
	{
		for (e=0;e<d/2;e++)
		{
			i=e;
			for(j=e;j<c-1-e;j++)
				printf("%d\n",a[i][j]);
			j=c-1-e;
			for (i=e;i<b-1-e;i++)
				printf("%d\n",a[i][j]);
			i=b-1-e;
			for(j=c-e-1;j>e;j--)
				printf("%d\n",a[i][j]);
			j=e;
			for(i=b-1-e;i>e;i--)
				printf("%d\n",a[i][j]);
		}
	}
	if (d%2!=0)
	{
		for (e=0;e<d/2;e++)
		{
			i=e;
			for(j=e;j<c-1-e;j++)
				printf("%d\n",a[i][j]);
			j=c-1-e;
			for (i=e;i<b-1-e;i++)
				printf("%d\n",a[i][j]);
			i=b-1-e;
			for(j=c-e-1;j>e;j--)
				printf("%d\n",a[i][j]);
			j=e;
			for(i=b-1-e;i>e;i--)
				printf("%d\n",a[i][j]);
		}
		if (d==b&&d!=c)
		{
			j=d/2;
			for (i=d/2;i<c-d/2;i++)
				printf("%d\n",a[j][i]);
		}
		if (d==c&&d!=b)
		{
			j=d/2;
			for(i=d/2;i<b-d/2;i++)
				printf("%d\n",a[i][j]);
		}
		if (d==c&&d==b)
		{
			i=j=d/2;
			printf("%d",a[i][j]);
		}
	}

}