semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
{int row,col,*array,*p,i,j,t;
scanf("%d%d",&row,&col);
array=(int *)calloc(row,col*sizeof(int));
for(p=array;p<=array+row*col-1;p++)
scanf("%d",p);
for(t=0;t<=row+col-2;t++)
 for(i=0;i<=t;i++)
 {  if(i>row-1||t-i>col-1)
 continue;
	 printf("%d\n",*(array+i*col+t-i));

 }







}
int main()
{
	int a[100][100];
	int row,col,t,i,j;
	scanf("%d%d",&row,&col);
for(i=0;i<row;i++)
{
	for(j=0;j<col;j++)
	{scanf("%d",&a[i][j]);}}
     row-=1;
	 col-=1;
	 t=row+col;
     for(i=0;i<=t;i++)
     {for(j=0;j<=i;j++)
	 {   if(j>row||(i-j)>col)
	 continue;
		 printf("%d\n",a[j][i-j]);}}
	return 0;
}
int num[101][101];
int main(void)
{
	int i=0,j=1,k=1,x,y,row,col,n=1;
	scanf("%d%d",&row,&col);
	for(x=0;x<=row-1;x++)
	    for(y=0;y<=col-1;y++)
	        scanf("%d",&num[x][y]);
	printf("%d\n",num[0][0]);
	while(n<row*col)
	{
		int flag=0;
		while(j>=0&&i<=row-1&&j<=col-1)
		{
			printf("%d\n",num[i][j]);
			i++;
			j--;
			n++;
			flag=1;
		}
		if(flag==1)
		k++;
		if(k<=col-1)
		{
			i=0;
			j=k;
		}
		else
		{
			i=k-col+1;
			j=col-1;
		}
	}
	return 0;
}
int main()
{
	int array[100][100] ;
	int row ,col ;
	cin>>row >> col ;
	int i , j ;
	for(i = 0 ;i < row ;i ++)
		for(j = 0 ;j < col ;j++)
			cin>>array[i][j];
	j = 0 ;
	for(i = 0 ;i < row ;i++)
	{
		if(i==0)
		{
			while(j <= col - 1)
			{
				cout<<array[i][j]<<endl ;
				for(int k = i + 1; k < row; k++)
				{
					if(i+j-k>=0)
						cout << array[k][i+j-k]<<endl ;
				}
				j ++ ;
			}
		}else
		{
			j = col - 1 ;
			cout<<array[i][j]<<endl ;
			for(int k = i + 1; k < row; k++)
			{
				if(i+j-k>=0)
					cout << array[k][i+j-k]<<endl  ;
			}
		}			
	}
}
int main()
{
	int row, col, array[101][101], i, j;
	cin >> row >> col;
	for (i = 0; i < row; i++)
		for (j = 0; j < col; j++)
			cin >> array[i][j];
	col--; row--;
	for (i = 0; i <= row + col; i++)
		for (j = 0; j <= i; j++)
			if (i - j <= col && j <= row)
				cout << array[j][i-j] << endl;
	return 0;
}
int main() {
	int m,n,i,j,a[101][101];
	cin>>m>>n;
	for(i=0;i<m;i++){
		for(j=0;j<n;j++){
			cin>>a[i][j];
		}
	}

	for(i=0;i<m+n-1;i++){
		for(j=0;j<=i;j++){
			if(j<m&&(i-j)<n){
			cout<<a[j][i-j]<<endl;
			}
		}
	}
	return 0;
}
int main( )
{
	int a[101][101];
	int row,col;

	int i,j;

	cin>>row>>col;

	for (i=0;i<row;i++)
		for (j=0;j<col;j++)
			cin>>a[i][j];

	for (i=0;i<col;i++)
		for (j=i;j>=0 && i-j<row;j--)
			cout<<a[i-j][j]<<endl; //????i+0?j?????i-j?????j?i??????j--

	for (i=1;i<row;i++)
		for (j=col-1;(j>=0) && (i+col-1-j <row) ;j--)
			cout<<a[i+col-1-j][j]<<endl;//????i+col-1?j????,i+col-1-j?????j??col-1??????j--


	return 0;
}
int main()
{
int n[100][100],i,j,a,b,x;
scanf("%d %d",&a,&b);
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
scanf("%d",&n[i][j]);
}
for(int m=0;m<b;m++)
{
    int c=0;
    for(i=m;i>=0&&c<a;i--,c++)
        printf("%d\n",n[c][i]);
}
 int y; 

for(x=1;x<a;x++)
{   
     y=b-1;
    for(j=x;j<a&&y>=0;j++,y--)
     printf("%d\n",n[j][y]);
 }
int z;
scanf("%d",&z);
return 0;
}
int main()
{
int a[100][100]={0}, row, col, i, j;
cin>>row>>col;
for (i=0; i<row; i++)
    for (j=0; j<col; j++)
    cin>>a[i][j];
for (i=0; i<row+col-1; i++)
{
    for (j=0; j<row; j++)
    {
        if (i-j>=col || i-j<0) continue;
        cout<<*(*(a+j)+i-j)<<endl;
    }
}
return 0;
}
int main()
{
	int array[100][100],i,j;
	int row,col,s;
	scanf("%d%d\n",&row,&col);
             for(i=0;i<row;i++)
   		for(j=0;j<col;j++)
		scanf("%d",&array[i][j]);
      
		if(row<col)
		{  
			
          for(s=0;s<=row-1;s++)
				 for(i=0;i<=s;i++)
					 printf("%d\n",array[i][s-i]);
				 for(s=row;s<=col-1;s++)
					 for(i=0;i<=row-1;i++)
                         printf("%d\n",array[i][s-i]);

				 for(s=col;s<=row+col-2;s++)
				   for(j=col-1;j>=s-row+1;j--)
					   printf("%d\n",array[s-j][j]);
		}
		else if(row>col)
		{
			 for(s=0;s<=col-1;s++)
				 for(i=0;i<=s;i++)
					 printf("%d\n",array[i][s-i]);
				 for(s=col;s<=row-1;s++)
					 for(j=col-1;j>=0;j--)
                         printf("%d\n",array[s-j][j]);

				 for(s=row;s<=row+col-2;s++)
				   for(i=s+1-col;i<=row-1;i++)
					   printf("%d\n",array[i][s-i]);
		}
		else
		{
			for(s=0;s<=col-1;s++)
				 for(i=0;i<=s;i++)
					 printf("%d\n",array[i][s-i]);
            for(s=row;s<=row+col-2;s++)
 				   for(i=s+1-col;i<=row-1;i++)
					   printf("%d\n",array[i][s-i]);
		}

		return 0;
}
void main()
{
	int a[100][100],i,j,k,l,m,n,col,row;
	scanf("%d%d",&row,&col);
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	if(col>=row)
	{  
	  for(k=0;k<col;k++)
	  {
		  for(l=0;l<row&&l<=k;l++)
		  {
			  printf("%d\n",a[l][k-l]);
		  }
	  }
	  for(m=1;m<row;m++)
	  {
		  for(n=0;n<row-m;n++)
			  printf("%d\n",a[m+n][col-1-n]);
	  }
	}
	else
	{
		for(k=0;k<col;k++)
	  {
		  for(l=0;l<row&&l<=k;l++)
		  {
			  printf("%d\n",a[l][k-l]);
		  }
	  }
		for(m=1;m<row;m++)
		{
			for(n=0;n<row-m&&n<col;n++)
				printf("%d\n",a[m+n][col-1-n]);
		}
	}
}
int main()
{
	int n,m,num[100][100];
	cin>>n>>m;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
			cin>>num[i][j];
	}
	for(int k=0;k<n+m-1;k++)
	{
		if(k<m)
		{
			for(int i=0;k>=i&&i<n;i++)
				cout<<num[i][k-i]<<endl;
		}
		else
		{
			for(int i=k-m+1;i<n&&k>=i;i++)
				cout<<num[i][k-i]<<endl;
		}
	}
	return 0;
}
/*
 * 3.cpp
 *
 *  Created on: 2012-11-10
 *      Author: lenovo
 */
int main()
{
	int row,col,i,j,k;
	cin>>row>>col;
	int a[row][col];
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
			cin>>a[i][j];
	for(j=0;j<col;j++)
		for(i=0,k=0;i<row&&(j-k)>=0;i++,k++)
			cout<<a[i][j-k]<<endl;
	for(i=1;i<row;i++)
		for(j=col-1,k=0;j>=0&&(i+k)<row;j--,k++)
			cout<<a[i+k][j]<<endl;
	return 0;
}
int main()
{
	int a[104][104];
	int h,l;
	cin>>h>>l;
	for(int i=0;i<104;i++)
		for(int k=0 ;k<104 ;k++)
			a[i][k]=-999;
	for(int i=1;i<=h;i++)
		for(int k=1 ;k<=l ;k++)
			cin>>a[i][k];
	int printer=a[1][1];
	for(int i=1;i<=l;i++)
	{
        int k=0;
		printer=a[1+k][i-k];
		while(printer!=-999)
		{
			cout<<printer<<endl;;
			k++;
			printer=a[1+k][i-k];
		}
	}
	for(int i=2;i<=h;i++)
	{
        int k=0;
		printer=a[i+k][l-k];
		while(printer!=-999)
		{
			cout<<printer<<endl;;
			k++;
			printer=a[i+k][l-k];
		}
	}
	return 0;
}
int main()
{
	int m,n,i,j,l;
	scanf("%d%d",&n,&m);
	int *p[100];
	for(i=0;i<n;i++)
		*(p+i)=(int*)malloc(m*sizeof(int));
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
			scanf("%d",*(p+i)+j);
	for(i=0;i<m;i++)
	{
		if(i-(n-1)>=0)
		{
		    for(l=0;l<n;l++)			
			    printf("%d\n",*(*(p+l)+(i-l)));
		}
		else
		{
			for(l=0;l<=i;l++)
				printf("%d\n",*(*(p+l)+(i-l)));
		}
	}
	for(i=1;i<n;i++)
	{
		if(n-i>=m)
		{
			for(l=0;l<m;l++)
				printf("%d\n",*(*(p+(i+l))+(m-(1+l))));
		}
		else
		{
			for(l=0;l<n-i;l++)
				printf("%d\n",*(*(p+(i+l))+(m-(1+l))));
		}
	}
	return 0;
}
int main()
{
	int m,n,zong,x,y,sum,i,zanshi;
	int *c,*d;
	scanf("%d %d",&m,&n);
	zong=m*n;
	d=(int*)malloc(zong*sizeof(int));
	c=d;
	for(;c<d+zong;c++)scanf("%d",c);
	for(sum=2;sum<=m+n;sum++)
	{
		for(y=1;y<sum;y++)
		{
			x=sum-y;
			zanshi=n*(y-1)+x;
			if(x<=n&&y<=m&&zanshi>=1&&zanshi<=zong)printf("%d\n",*(d+zanshi-1));
		}
		
	}
	
}
void main()
{
	int i,j,m,n,a=0;
	int (*p)[10000];
	scanf("%d %d",&m,&n);
	p=(int(*)[10000])calloc(10000,10000);
	for(i=0;i<=m-1;i++)
	{
		for(j=0;j<=n-1;j++)
		{
			scanf("%d",*(p+i)+j);
		}
	}
	i=0;
	j=0;
	while(a<n+m-1)
	{
        while(i!=m && j!=-1)
		{
			printf("%d\n",*(*(p+i)+j));
			i++;
			j--;
		}
		a++;
		if(a>n-1) 
		{
			j=n-1;
			i=a-(n-1);
		}
		else if(a<=n-1) 
		{
			j=a;
			i=0;
		}
	}
}
void main()
{
	int row,col;
	scanf("%d %d",&row,&col);
	int **p;
	p=(int **)malloc(100*sizeof(int *));
	int i,j;
	for(i=0;i<row;i++)
		*(p+i)=(int *)malloc(100*sizeof(int));
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
			scanf("%d",*(p+i)+j);
	}
	for(j=0;j<col-1;j++)
	{
		int a=j;
		for(i=0;a>=0&&i<row;i++)
		{
			printf("%d\n",*(*(p+i)+a));
			a--;
		}
	}
	for(i=0;i<row;i++)
	{
		int a=i;
		for(j=col-1;a<row&&j>=0;j--)
		{
			printf("%d\n",*(*(p+a)+j));
			a++;
		}
	}
}
void main()
{
	int r,c,i,j,k;
	int (*a)[100];
	a=(int (*)[100])malloc(100*100*sizeof(int));
	scanf("%d %d",&r,&c);
	for(i=0;i<r;i++)
		for(j=0;j<c;j++)
		  scanf("%d",*(a+i)+j);

	
      for(k=0;k<=c-1;k++)
	  {
		 i=0;j=k;
		 while(j>=0&&i<=r-1)
		 {
			 printf("%d\n",*(*(a+i)+j));
			 i++;
			 j--;
		 }
	  }
	  for(k=1;k<=r-1;k++)
	  {
		  j=c-1;i=k;
		  while(j>=0&&i<=r-1)
		 {
			 printf("%d\n",*(*(a+i)+j));
			 i++;
			 j--;
		 }
	  }

	
}
int main()
{
	int a,b,n[100][100],c,d,e,f,g,h,i,j,k,l;
	scanf("%d%d",&a,&b);
	for(c=1;c<=a;c++)
	{
		for(d=1;d<=b;d++)
		{
			scanf("%d",&n[c][d]);
		}
	}
	if(a>=b)
	{
		for(e=1;e<=b;e++)
		{
			for(f=1;f<=e;f++)
			{
				printf("%d\n",n[f][e+1-f]);
			}
		}
		for(g=2;g<=a;g++)
		{
			for(h=1;h<=b&&g-1+h<=a;h++)
			{
				printf("%d\n",n[g-1+h][b+1-h]);
			}
		}
	}
	else
	{
		for(i=1;i<=b;i++)
		{
			for(j=1;j<=a&&i+1-j>0;j++)
			{
				printf("%d\n",n[j][i+1-j]);
			}
		}
		for(k=2;k<=a;k++)
		{
			for(l=1;l<=a+1-k;l++)
				printf("%d\n",n[k-1+l][b+1-l]);
		}
	}
	return 0;
}
int main(){
	int row, col, sz[100][100], i, j, a, b;	
	scanf("%d%d", &row, &col);
	for(i=0;i<row;i++){
		for(j=0;j<col;j++){
			scanf("%d", &sz[i][j]);
		}
	}
	for(i=0;i<col;i++){
		a=i;
		b=0;
		for(j=0;j<=i;j++){
			printf("%d\n", sz[b][a]);
			b++;
			a--;
			if(b==row)
				break;
		}
	}
	for(i=1;i<row;i++){
		b=i;
		a=col-1;
		for(j=i;j<row;j++){
			printf("%d\n", sz[b][a]);
			b++;
			a--;
			if(a==-1)
			     break;
		}
		
	}
	return 0;
}
int main()
{
	int hang, lie, a[100][100];
	cin >> hang >> lie;
	for(int i = 0; i < hang; i++)
	{
		for(int j = 0; j < lie; j++)
		{
			cin >> a[i][j];         //??????
		}
	}
	for(int k = 0; k < lie; k++) //????????k?????
	{
		for(int l = k; (l >= 0) && (k - l < hang); l--) // ?????????????,??????k+1???????????
		{
			cout << a[k - l][l] << endl << endl;	
		}
	}
	for(int p = lie; p < hang + lie - 1; p++)  //????????p?????
	{
		for(int q = lie - 1;(q >= 0) && (p - q < hang);q--)
		{		
			cout << a[p - q][q] << endl << endl;			
		}
	}
	return 0;
}
int main()
{
    int row,col;
    cin>>row>>col;
    int data[row][col];
    int (*p)[col]=data;
    int i,j;
    for(i=0;i<row;i++)
    {
        for(j=0;j<col;j++)
        {
            cin>>*(*(p+i)+j);
        }
    }
    int m,n;
    for(i=0;i<col;i++)
    {
        for(m=0,n=i-m;(m<row&&n>=0);m++,n--)
        cout<<*(*(p+m)+n)<<endl;
    }
    for(i=1;i<row;i++)
    {
        for(m=i,n=col-1;(m<row&&n>=0);m++,n--)
        cout<<*(*(p+m)+n)<<endl;
    }
    return 0;
}
int main()
{
	int row,col;
	cin>>row>>col;
	int i=0,j=0,k=0;
	int a[100][100];
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
			cin>>a[i][j];
	int (*p)[100]=a;
	for(k=0;k<col;k++)
		for(i=0;i<row&&k-i<col&&k-i>=0;i++)
			cout<<*(*(p+i)+k-i)<<endl;
	for(k=col;k<=(row-1)+(col-1);k++)
		for(i=k-col+1;i<row&&k-i>=0;i++)
			cout<<*(*(p+i)+k-i)<<endl;
	return 0;
}
/* Note:Your choice is C IDE */
void main()
{int a[200][200],n,m,j,i,k;
	for(i=0;i<200;i++)
	for(j=0;j<200;j++)
	a[i][j]=-32767;
	scanf("%d %d",&m,&n);
	for(i=0;i<m;i++)
	for(j=0;j<n;j++)
    scanf("%d",&a[i][j]);
    for(k=0;k<m+n-1;k++)
    for(i=k;i>=0;i--)
    {if(a[k-i][i]!=-32767)
    	printf("%d\n",a[k-i][i]);}
}
int main()
{
    void print(int *p[101],int row,int col);
    int *p[101];
    int row,col,i,j;
    scanf("%d %d",&row,&col);
    for(i=0;i<row;i++)
    {
                      p[i]=(int *)calloc(101,sizeof(int));
                      for(j=0;j<col;j++)
                      {
                                        scanf("%d",(p[i]+j));
                      }
    }
    print(p,row,col);
    
    return 0;
}

void print(int *p[101],int row,int col)
{
     int k,i;
     for(k=0;k<(row+col-1);k++)
     {
                               for(i=0;(i<k+1)&&(i<row);i++)
                               {
                                                 if((k-i)<col)
                                                 printf("%d\n",*(p[i]+(k-i)));
                               }
     }
}
int main(){
	int shuzu[100][100];
	int i,j,k,n,row,col,shuru;
	scanf("%d %d",&row,&col);
	for(i=0;i<row;i++){
		for(j=0;j<col;j++){
			scanf("%d",&shuru);
			shuzu[i][j]=shuru;
		}
	}
	for(k=0;k<=row+col-2;k++){
		for(i=0;i<row;i++){
			for(j=0;j<col;j++){
				if(i+j==k){
					printf("%d\n",shuzu[i][j]);
				}
			}
		}
	}
	return 0;

}
int main()
{
	int row,col,array[100][100];
	cin>>row>>col;
	for(int i=0;i<row;i++)
		for(int j=0;j<col;j++)
			cin>>array[i][j];
	for(int k=0;k<col;k++)
	{
		if(k<row)
			for(int i=0;i<=k;i++)
				cout<<array[i][k-i]<<endl;
		else
			for(int i=0;i<row;i++)
				cout<<array[i][k-i]<<endl;
	}
	for(int k=col;k<row+col-1;k++)
	{
		if(k<row)
			for(int i=k-col+1;i<=k;i++)
				cout<<array[i][k-i]<<endl;
		else
			for(int i=k-col+1;i<row;i++)
				cout<<array[i][k-i]<<endl;
	}
	return 0;
}
int main() {
	int k = 0, row = 0, col = 0, i = 0, j = 0,min=0,rowbegin=0;
	cin >> row >> col;
	int a[row][col];
	for (i = 0; i < row; i++)
		for (j = 0; j < col; j++)
			cin >> a[i][j];
	min=row<col?row:col;
	while (k <= col+row-1) {
		i = 0;
		if (k > col-1)
			rowbegin++;

		for (i=rowbegin; i <= k &&i<row; i++) {
			cout << a[i][k - i]<<endl;
		}
		k++;
	}
	return 0;
}
int main()
{	int i,j,m,n;
	cin>>m>>n;
	int a[m+1][n+1];
	for(i=1;i<=m;i++)
		for(j=1;j<=n;j++)
			cin>>a[i][j];
	int k;



	for(k=1;k<=n;k++)
		for(i=k;(i>=1)&&(k+1-i<=m);i--)
			cout<<a[k+1-i][i]<<endl;



	for(k=2;k<=m;k++)
		for(i=n;(i>=1)&&(k+n-i<=m);i--)
			cout<<a[k+n-i][i]<<endl;
return 0;

}
int main()
{
	int i,j,k,row,col;
	int (*p)[100];
	scanf("%d %d",&row,&col);
	p=(int *)calloc(100,10);
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
			scanf("%d",*(p+i)+j);
	printf("%d\n",*(*(p+0)+0));
	j=1;
	i=0;
	for(;j<col;)
	{
		k=j;
		while(j>=0&&i<row)
		{
			printf("%d\n",*(*(p+i)+j));
			j=j-1;
			i=i+1;
		}
		j=k+1;
		i=0;
	}
	i=1;
	j=col-1;
	for(;i<row;)
	{
		k=i;
		while(i<row&&j>=0)
		{
			printf("%d\n",*(*(p+i)+j));
			j=j-1;
			i=i+1;
		}
		i=k+1;
		j=col-1;
	}
	
}
int main()
{
	int row,col;
	scanf("%d %d",&row,&col);
	int *head=(int *)calloc(row*col,sizeof(int));
    int *p;
	for(p=head;p<head+row*col;p++)
	{
		scanf("%d",p);
	}
	int i,j,jj,ii;
	for(j=0;j<col;j++)
	{
		for(jj=j,i=0;jj>=0&&i<row;jj--,i++)
		{
			printf("%d\n",*(head+col*i+jj));
		}
	}
	for(i=1;i<row;i++)
	{
		for(ii=i,j=col-1;j>=0&&ii<row;j--,ii++)
		{
			printf("%d\n",*(head+col*ii+j));
		}
	}
	return 0;
}
int main()
{
	int row,col,i,j;//i,j ?????
	cin>>row>>col;
	int array[row][col];
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			cin>>*(*(array+i)+j);//?????????? 
		}
	}
	for(i=0;i<col;i++)//??1??????
	{
		int k=0;//????k=0
		j=i;//?j=i
		cout<<*(*(array+k)+j)<<endl;//??array[k][j]
		while(k+1<row&&j-1>=0)//?k+1<row??j-1>=0
		{
			k++;//k??
			j--;//j??
			cout<<*(*(array+k)+j)<<endl;//??array[k][j]
		}
	}
	for(i=1;i<row;i++)//?????????
	{
		int k=col-1;//????k=col-1
		j=i;//?j=i
		cout<<*(*(array+j)+k)<<endl;//??array[j][k]
		while(j+1<row&&k-1>=0)//?j+1<row??k-1>=0
		{
			j++;//j??
			k--;//k??
			cout<<*(*(array+j)+k)<<endl;//??array[j][k]
		}
	}
	return 0;
}
int row,col,*a;
int main()
{
void out(int i,int j,int k);
int i;
scanf("%d %d",&row,&col);
a=(int *)malloc(row*col*sizeof(int));
for(i=0;i<row*col;i++)
scanf("%d",&a[i]);
printf("%d",a[0]);
for(i=1;i<col;i++)
out(i,i,0);
for(i=1;i<row;i++)
out(i,col-1,i);

return 0;
}

void out(int i,int j,int k)
{
while(j!=-1&&k!=row)
{
printf("\n%d",*(a+k*col+j));
j--;k++;
}
}
int main()
{
	int a[101][101] = {0, 0}, row, col, i, j, count = 0, r = 0;
	cin >> row >> col;
	if(col == 1)
		r = 1;
	for(i = 1 ; i <= row ; i++)
		for(j = 1 ; j <= col ; j++)
		{
			cin >> a[i][j];
		}
		i = 1;
		j = 1;
		while(count < row * col)
		{
			cout << a[i][j] << endl;
			count++;
			if((j == 1 && i != row) || (j != 1 && i == row) || (j == 1 && i == row))
			{
				if(i + j < col)
				{
					j = i + j;
					i = 1;
				}
				else
				{
					r++;
					i = r;
					j = col;
				}
			}
			else
			{
				i++;
				j--;
			}
		}
		return 0;
}
void main()
{
	int row, col, n[100][100], i, j, k;
	scanf("%d%d", &row, &col);
	for (i = 0; i < row; i ++)
		for (j = 0; j < col; j ++)
			scanf("%d", &n[i][j]);
	for (i = 0; i <= col + row - 2; i ++)
		for (j = 0, k = i; j < row && k >=0; j ++, k --)
			if (k < col)	printf("%d\n", n[j][k]);
}
int main()
{
    int row,col;
    cin>>row>>col;
    int array[row][col];
    int i,j,k;
    for(i=0;i<row;i++){
        for(j=0;j<col;j++)
            cin>>array[i][j];
    }
    
    
    for(i=0;i<col+row-1;i++)//?????
        for(j=i,k=0;(j>=0)&&(k<row);j--,k++)//?????????????????????0???????i?????????????1????1???????0????????
            if(j<col)//????
                cout<<array[k][j]<<endl;
    
    return 0;
}
int main()
{
	int a[100][100];
    int n,row,col,i,j;
    scanf("%d%d",&row,&col);
	for(i=0;i<=row-1;i++)
		for(j=0;j<=col-1;j++)
			scanf("%d",&a[i][j]);
    if(row>=col)
	{
		for(n=0;n<=col-1;n++)
		   for(i=0;i<=n;i++)printf("%d\n",a[i][n-i]);
	    for(n=col;n<=row-1;n++)
           for(i=n-col+1;i<=n;i++)printf("%d\n",a[i][n-i]);
		for(n=row;n<=row+col-2;n++)
			for(i=n-col+1;i<=row-1;i++)printf("%d\n",a[i][n-i]);
	}
/*	else if(row==col)
	{
		for(n=0;n<=row-1;n++)
			for(i=0;i<=n;i++)printf("%d\n",a[i][n-i]);
		for(n=row;n<=2*row-2;n++)
			for(i=n-row+1;i<=row-1;i++)printf("%d\n",a[i][n-i]);
	}?????1???????????????*/
	else
	{
		for(n=0;n<=row-1;n++)
			for(i=0;i<=n;i++)printf("%d\n",a[i][n-i]);
		for(n=row;n<=col-1;n++)
			for(i=0;i<=row-1;i++)printf("%d\n",a[i][n-i]);
		for(n=col;n<=row+col-2;n++)
			for(i=n-col+1;i<=row-1;i++)printf("%d\n",a[i][n-i]);
	}
    return 0;
}
main()
{
   int a,b,i,j;
   int c[100][100];
   scanf("%d %d",&a,&b);
   for(i=0;i<a;i++)
     for(j=0;j<b;j++)
       scanf("%d",&c[i][j]);
   for(i=0;i<b;i++)
   {
      for(j=0;j<=i&&j<a;j++)
         printf("%d\n",c[j][i-j]);
   } 
   for(i=b;i<a+b-1;i++)
       {
       for(j=i+1-b;j<a&&j<=i;j++)
          printf("%d\n",c[j][i-j]); 
       }
}
void main()
{
	int a[100][100],i,j,row,col,k;
	scanf("%d%d",&row,&col);
	for (i=0;i<row;i++)
		for (j=0;j<col;j++)
			scanf("%d",&a[i][j]);
		for (i=0,j=0,k=2;j<col;i++,j--)
		{		
			printf("%d\n",a[i][j]);
			if (j==0||i==row-1)
			{
				j=k;
				k=k+1;
				i=-1;
			}
		}
		for (i=1,j=col-1,k=1;i<row;i++,j--)
		{
			printf("%d\n",a[i][j]);

			if (i==row-1||j==0)
			{
				i=k;
				k++;
				j=col;
			}
		}
}
int r,c,*p,n,m,i,j,k;
void main()
{
 void x(int i);
 void y(int i);
 scanf("%d %d",&r,&c);
 n=r*c;m=r+c-2;
 p=(int *)malloc(n*sizeof(int));
 for(i=0;i<n;i++)
 scanf("%d",p+i);
 for(i=0;i<c;i++)x(i);
 for(i=c;i<=m;i++)y(i);
}
void x(int i)
{
	int a;
	for(a=i;a>=0&&(i-a)<r;a--)
		printf("%d\n",*(p+(i-a)*c+a));
}
void y(int i)
{
	int a;
	for(a=c-1;a>=0&&(i-a)<r;a--)
		printf("%d\n",*(p+(i-a)*c+a));
}
int main()
{
int a[100][100],row,col,i,j;
scanf("%d %d",&row,&col);
for(i=0;i<row;i++)
  {
     for(j=0;j<col;j++)
       {
          scanf("%d",&a[i][j]);
       }
  }
for(i=0;i<row+col-1;i++)
  {
     if(i>=col)
     {
       for(j=col-1;j>=i-row+1&&j>=0;j--)
         {
           printf("%d\n",a[i-j][j]);
         }
     }    
     else
     {
       for(j=i;j>=i-row+1&&j>=0;j--)
         {
           printf("%d\n",a[i-j][j]);
         }
     }
  }
return 0;
}
int main()
{
	int row,col,i,j,k,n,m,a[100][100];
	scanf("%d%d",&row,&col);
	for(i=0;i<row;i++){
		for(j=0;j<col;j++){
			scanf("%d",&a[i][j]);
		}
	}
	for(k=0;k<row+col-1;k++){
		for(m=0;m<row;m++){
			if((k-m)<0)
			{break;}
			for(n=k-m;;)
			{
				if((k-m)>(col-1))
				{break;}
				printf("%d\n",a[m][n]);
				break;
			}
		}
	}
	return 0;
}
int main()
{
	int col,row,i,j,n,m,e,cishu,sz[100][100];
	e=0;
	n=0;
	cishu=0;
	scanf("%d%d",&row,&col);
	for(j=0;j<row;j++){
		for(i=0;i<col;i++){
			scanf("%d",&sz[j][i]);
		}
	}if(row>1&&col>1){
		for(i=0,j=0;;i++,j--){
			if(i==0){m=j;}
	    	printf("%d\n",sz[i][j]);
	     	cishu++;
		    if(cishu==row*col){break;}
	    	if((j==0||i==row-1)&&e==0){
		    	i=-1;
		    	j=m+2;
		    	if(j==col){e=1;}
			}if((j==0||i==row-1)&&e==1){
			    j=col;
			    n++;
			    i=n-1;
			}
		}
	}else{	
		for(j=0;j<row;j++){
			for(i=0;i<col;i++){
				printf("%d\n",sz[j][i]);
			}
		}
	}
	return 0;
}
int main()
{
	int array[100][100];
	int i,j,k,row,col,sum;
	scanf("%d %d",&row,&col);
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			scanf("%d",&array[i][j]);
		}
	}
	if(row==col)
	{
	    for(k=0;k<col;k++)
		{
		    for(i=0;i<=k;i++)
			{
			    printf("%d\n",array[i][k-i]);
			}
		}
	    sum=row;
	    for(k=1;k<row;k++)
		{
		    for(j=k;j<row;j++)
			{
			    printf("%d\n",array[j][sum-j]);
			}
		    sum++;
		}
	}
	else if(col>row)
	{
		for(k=0;k<row;k++)
		{
		    for(i=0;i<=k;i++)
			{
			    printf("%d\n",array[i][k-i]);
			}
		}
		for(k=row;k<col;k++)
		{
			for(i=0;i<row;i++)
			{
				printf("%d\n",array[i][k-i]);
			}
		}
        sum=col-1;
	    for(k=1;k<row;k++)
		{
		    for(j=k;j<row;j++)
			{
			    printf("%d\n",array[j][sum+k-j]);
			}
		}
	}
	else
	{
        for(k=0;k<col;k++)
		{
		    for(i=0;i<=k;i++)
			{
			    printf("%d\n",array[i][k-i]);
			}
		}
		for(k=col;k<row;k++)
		{
			for(i=col-1;i>=0;i--)
			{
				printf("%d\n",array[k-i][i]);
			}
		}
		sum=0;
		for(k=row;k<row+col-1;k++)
		{
			for(i=col-1;i>sum;i--)
			{
				printf("%d\n",array[k-i][i]);
			}
			sum++;
		}
	}
	return 0;
}
int main()
{
	int m,n,i,j,k,a[100][100];
	scanf("%d%d",&m,&n);
	for(i=0;i<m;i++)
		for(j=0;j<n;j++)
		{
			scanf("%d",&a[i][j]);
		}
		printf("%d\n",a[0][0]);
	for(j=1;j<n;j++)
	{
		for(i=0;i<j+1&&i<m;i++)
		{
			printf("%d\n",a[i][j-i]);
		}
	}
	for(i=1;i<m;i++)
	{
		for(j=0;j<n&&j<m-i;j++)printf("%d\n",a[j+i][n-1-j]);
	}

	


	return 0;
}
int main()
{
	int row,col,**p,num;
	int i,j,k;
	scanf("%d %d",&row,&col);
	num=row*col;
	p=(int **)malloc(row*sizeof(int));
	for(i=0;i<row;i++)
	{
		*(p+i)=(int *)malloc(col*sizeof(int));
	}
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			scanf("%d",*(p+i)+j);
		}
	}
	for(i=0;i<col+row-1;i++)
	{
		k=0;
		j=i;
		while(j>=0&&k<=row)
		{
			if(j<col&&k<row)
			{
				printf("%d\n",*(*(p+k)+j));
			}
			k=k+1;
			j=j-1;
		}
	}
	return 0;
}
int main()
{
    int row,col;
    int array[110][110];
    scanf("%d%d",&row,&col);
    int i,j;
    for(i=0;i<row;i++)
        for(j=0;j<col;j++)
            scanf("%d",*(array+i)+j);   //????
    for(i=0;i<col;i++)             //???
    {
        for(j=0;((j<=i)&&(j<row));j++)            //????
        {
            printf("%d\n",*(*(array+j)+i-j));    //????
        }
    }
    for(i=1;i<row;i++)            //?
    {
        for(j=0;((j<=col-1)&&(j<row-i));j++)   //????
        {
            printf("%d\n",*(*(array+i+j)+col-1-j));  //????
        }
    }
    return 0;
}
int main()
{
	int row, col;                                    //????????? 
	int a[110][110];
	int max, min;
	
	cin >> row >> col;
	
	for(int i = 0; i < row; i ++)
	for(int j = 0; j < col; j ++)
	{
		cin >> a[i][j];
	}
	
	if(row > col)
	{
		max = row;
		min = col;
	}
	else
	{
		max = col;
		min = row;
	}
	
	for(int i = 0; i < min; i ++)
	for(int j = 0; j <= i; j ++)
	cout << a[j][i - j] << endl;
	
	if(col != row)
	{
		for(int i = min; i < max; i ++)
		{
			if(col > row)
			for(int j = 0; j < min; j ++)
			cout << a[j][i - j] << endl;
			
			else
			for(int j = col - 1; j >= 0; j --)
			cout << a[i - j][j] << endl;
		}
	}
	
	
	for(int i = max; i <= row + col - 2; i ++)
	for(int j = col - 1; i - j <= row - 1; j --)
	cout << a[i - j][j] << endl;
		
	
	 
	return 0;
}
int main()
{
	int row,col,i,j,k;
	int a[100][100];
	scanf("%d %d",&row,&col);
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
			scanf("%d",&a[i][j]);
	for(k=0;k<row+col-1;k++)
		for(i=0;i<row;i++)
			for(j=0;j<col;j++)
			{
				if(i+j==k&&k-i>=0)
					printf("%d\n",a[i][k-i]);
			}
	return 0;
}
int main(){
int n,m,i,j,a[100][100],x=0,y=0,k=0,l=0;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
 for(j=0;j<m;j++)
  scanf("%d",&a[i][j]);

for(;;){
 printf("%d\n",a[x][y]);
 if(x==n-1 && y==m-1)break;
 if(y==0 || x==n-1){
   if(l==m-1)k++;
   else l++;
   x=k;y=l;
   continue;
 }
 x++;y--;                           
}

}