semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
    int n,m;
    cin>>n>>m;
    int a[100][100]={0};
    int *p=a[0];
    for (p=a[0];p<a[0]+n*m;p++)
    {
        cin>>*p;       
    }
    if(n==1||m==1)
    {
       for(int k=0;k<n*m-1;k++)                                //????????????????????n+m-1 
       {
               for(int i=0;i<n;i++)                            //?????????? 
        {
            for(p=a[0]+m*i;p<a[0]+m*(i+1);p++)
            {
                   if(((i+p-a[0]-m*i)==k)&&(p!=a[0]+n*m-1))
                   {
                           cout<<*p<<endl;             
                   }                           
            }
         }
       } 
       cout<<*(a[0]+n*m-1);          
    }
    else
    {
    for(int k=0;k<n*m-2;k++)                                       //???????????????????n+m-2 
    {
      for(int i=0;i<n;i++)
      {
            for(p=a[0]+m*i;p<a[0]+m*(i+1);p++)
            {
                   if(((i+p-a[0]-m*i)==k)&&(p!=a[0]+n*m-1))
                   {
                           cout<<*p<<endl;             
                   }                           
            }
      }
    }  
    //for(p=a[0]+m*(n-1);p<a[0]+m*n-1;p++) cout<<*p<<endl;
    cout<<*(a[0]+m*n-1);
    }
 
    return 0;
}
int main()
{
	int a[101][101], r, c, r1, c1; 
	int i, l, j, k, m, n;
	cin >>r>>c;
	for(m=0; m<=100; m++)
	{
		for(n=0; n<=100; n++)
		{
			a[m][n]=-1;
		}
	}
	for(i=1; i<=r; i++)
	{
		for(j=1; j<=c; j++)
		{
			cin>>a[i][j];
		}
	}
	for(k=1; k<=c; k++)
	{
		c1 = k;
		r1 = 1;
		while(a[r1][c1]>0)
		{
			cout<<a[r1++][c1--]<<endl;
		}
	}
	for(l=2; l<=r; l++)
	{
		c1 = c;
		r1 = l;
		while(a[r1][c1]>0)
		{
			cout<<a[r1++][c1--]<<endl;
		}
	}
	return 0;
}
int main ()
{
	int row, col, i, j, k = 1;
	int a[200][200] = {0};
	cin >>  row >> col;
	for ( i = 0; i <= row - 1; i++ )
	{
		for ( j = 0; j <= col - 1; j++ )
			cin >> a[i][j] ;
	}
	cout << a[0][0];
	while ( k <= row + col - 2 )
	{
		for ( i = 0; i <= row - 1; i++ )
		{
			if ( k - i >= 0 && k - i < col )
			{
				cout << endl;
				cout << a[i][k-i]  ;
			}
		}
		k++;
	}
	cout << endl;
	return 0;
}
int main()
{
	int i,j,row,col,x,y;
	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(i=0;i<=col-1;i++)
	{
		x=0;
		y=i;
		do
		{
			printf("%d\n",a[x][y]);
			x++;
			y--;
		}
		while((y>=0)&&(x<=row-1));
	}
	for(i=1;i<=row-1;i++)
	{
		x=i;
		y=col-1;
		do
		{
			printf("%d\n",a[x][y]);
			x++;
			y--;
		}
		while((y>=0)&&(x<=row-1));
	}


	

	return 0;
}
int main()
{
	int n,m,i=0,an[100][100],j=0,k=0,s=0;
	scanf("%d%d",&n,&m);
	for(i=0;i<n;i++){
		for(j=0;j<m;j++){
			scanf("%d",&an[i][j]); 
		}
	}
	for(k=0;k<n+m-1;k++){
		if(n<m){
			if(k<m-1){
				for(i=0,j=0;i<n&&j<=k;i++,j++){
					printf("%d\n",an[i][k-j]);
				}
			}
			else if(k>=m-1){
				for(i=m-1,j=k-m+1;j<n;i--,j++){
					printf("%d\n",an[j][i]);
				}
			}
		}
		else{
			if(k<m-1){
				for(i=0,j=0;i<m&&j<=k;i++,j++){
					printf("%d\n",an[i][k-j]);
				}
			}
			else if(k>=m-1){
				for(i=m-1,j=k-m+1;i>=0&&j<n;i--,j++){
					printf("%d\n",an[j][i]);
				}
			}
		}
	}
	return 0;
}
int max(int a,int b)
{
    return a>b?a:b;
}
int min (int a,int b)
{
    return a<b?a:b;
}
main()
{  int i,j,t,col,row,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(t=0;t<=col-1;t++)
    {
       j=t;
       for(i=0;i<=min(t,row-1);i++)
       { 
         printf("%d\n",a[i][j]);
         j--;
       }
    }
    for(t=1;t<=row-1;t++)
    {
       i=t;
       for(j=col-1;j>=max(col-row+t,0);j--)
        { 
         printf("%d\n",a[i][j]);
         i++;
       }
    }

 }
int main()
{
	int row,col,i,j,a[100][100],n,t;
	scanf("%d%d",&row,&col);
	n=row+col;
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	for(t=0;t<n-1;t++)
	{
		for(i=0;i<=t;i++)
		{
			if(i<row&&(t-i)<col)
				printf("%d\n",a[i][t-i]);
			else 
		continue;
		}
	}
	return 0;
}
void prt(int a[100][100],int i,int j,int m,int n)
{	static int t=0;
	printf("%d\n",a[i][j]);
	if(i==m-1||j==0)
	{	t++;
		if(t<n)prt(a,0,t,m,n);
		else if(t<m+n-1)prt(a,t-n+1,n-1,m,n);
	}
	else prt(a,i+1,j-1,m,n);	
}
void main()
{
	int i,j,m,n,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]);}
	prt(a,0,0,m,n);
}
int main()
{
    int a[110][110]={0};
    int m,n,i,j,k;
    cin>>m>>n;
    for(i=0;i<=m-1;i++)
    {
                     for(j=0;j<=n-1;j++)
                     {
                                      cin>>*(*(a+i)+j);
                     }
    }
    for(j=0;j<=n-1;j++)
    {
                      k=j;
                      for(i=0;i<=m-1;i++)
                      {
                                       cout<<*(*(a+i)+k)<<endl;
                                       k--;
                                       if(k<0) break;
                      }
    }
    for(i=1;i<=m-1;i++)
    {
                       j=n-1;
                       for(k=i;k<=m-1;k++)
                       {
                                          cout<<*(*(a+k)+j)<<endl;
                                          j--;
                                          if(j<0) break;
                       }
    }
    return 0;
}
int a[100][100], col, row;
void main()
{
	int i, j, k;
	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<=row-1; k++)
		{
			for(i=0; i<=k; i++)
			{
				printf("%d\n", a[i][k-i]);
			};
		};
		for(k=row; k<=col-1; k++)
		{
			for(i=0; i<=row-1; i++)
			{
				printf("%d\n", a[i][k-i]);
			};
		};
		for(k=col; k<=row+col-2; k++)
		{
			for(i=k-col+1; i<=row-1; i++)
			{
				printf("%d\n", a[i][k-i]);
			};
		};
	};
	if(row>col)
	{
		for(k=0; k<=col-1; k++)
		{
			for(i=0; i<=k; i++)
			{
				printf("%d\n", a[i][k-i]);
			};
		};
		for(k=col; k<=row-1; k++)
		{
			for(i=k-col+1; i<=k; i++)
			{
				printf("%d\n", a[i][k-i]);
			};
		};
		for(k=row; k<=row+col-2; k++)
		{
			for(i=k-col+1; i<=row-1; i++)
			{
				printf("%d\n", a[i][k-i]);
			};
		};
	};
}
int main()
{
	int h,l,a[1000][1000],j,i,k;
	scanf("%d %d",&h,&l);
	for(i=0;i<h;i++)
		for(j=0;j<l;j++)
			scanf("%d",&a[i][j]);
	for(k=0;k<l;k++)
        for(j=k,i=0;(j>=0&&i<h);i++,j--)
			printf("%d\n",a[i][j]);
		for(k=1;k<h;k++)
           for(j=l-1,i=k;(i<h&&j>=0);i++,j--)
			   printf("%d\n",a[i][j]);
}
int main()
{
	int m,n,*p,*p0,i;
	scanf("%d%d",&m,&n);
	p = (int *)calloc(m*n,sizeof(int)); 
	
	p0 = p;
	for (p=p0;p<p0+m*n;p++){
		scanf("%d",p);
	}
	
    if (m<n){
		for (p=p0;p<p0+m;p++){
			for (i=0;i<p-p0+1;i++){
				printf("%d\n",*(p+i*(n-1)));
			}
		}
		for (p=p0+m;p<p0+n-1;p++){
			for (i=0;i<m;i++){
				printf("%d\n",*(p+i*(n-1)));
			}
		}		
		for (p=p0+n-1;p<p0+m*n;p+=n){
			for (i=0;i<m-(p-p0)/n;i++){
				printf("%d\n",*(p+i*(n-1)));
			}
		}
	}
 
	if (m==n){
		for (p=p0;p<p0+n-1;p++){
			for (i=0;i<p-p0+1;i++){
				printf("%d\n",*(p+i*(n-1)));
			}
		}
		for (p=p0+n-1;p<p0+m*n;p+=n){
			for (i=0;i<m+1-(p-p0+1)/n;i++){
				printf("%d\n",*(p+i*(n-1)));
			}
		}
	}
	
	if (m>n){
		for (p=p0;p<p0+n-1;p++){
			for (i=0;i<p-p0+1;i++){
				printf("%d\n",*(p+i*(n-1)));
			}
		}
     	for (p=p0+n-1;p<=p0+(m-n+1)*n-1;p+=n){
			for (i=0;i<n;i++){
				printf("%d\n",*(p+i*(n-1)));
			}
		}
		for (p=p0+(m-n+2)*n-1;p<=p0+m*n-1;p+=n){
			for (i=0;i<m-(p-p0+1)/n+1;i++){
				printf("%d\n",*(p+i*(n-1)));
			}
		}		
	}			 
}
int main(){
	int row,col,i,j,k,N;
	int a[101][101];
	scanf("%d %d",&row,&col);
	for(i=0;i<row;i++){
		for(j=0;j<col;j++){
			scanf("%d",&a[i][j]);
		}
	}
	N=row+col-2;
	for(k=0;k<=N;k++){
		i=0;
		j=k-i;
		do{
    		if(i>=0 && j>=0 && i<row && j<col){
	    		printf("%d\n",a[i][j]);
	    		i++;
	    		j--;
			}else{
				i++;
				j--;
			}
		}while(j>=0);
	}
	return 0;
}
int a[200][200],f[200][200],n,m,i,j,flag,si,sj;
int main()
{
    scanf("%d %d",&n,&m);
    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++)
            scanf("%d",&a[i][j]);
    while (1)
    {
        flag=0;
        for (i=1;i<=m;i++)
            if (f[1][i]==0)
            {
                flag=1;
                f[1][i]=1;
				break;
            }
		if (flag==0)
        for (i=1;i<=n;i++)
            if (f[i][m]==0)
            {
                flag=2;
                f[i][m]=1;
				break;
            }
        if (flag==1)
        {
            si=1;sj=i;
        }
        if (flag==2)
        {
            si=i;sj=m;
        }
        if (flag==0)
            return 0;
        for (;si<=n && sj>=1;si++,sj--)
            printf("%d\n",a[si][sj]);
    }
    return 0;
}
int main()
{
   int row=0,col=0,k=0;
   cin>>row>>col;
   int i=0,j=0,s[row][col];
   for(i=0;i<=row-1;i++)//?? 
   {
      for(j=0;j<=col-1;j++)
      {
         cin>>s[i][j];                    
      }                     
   } 
   for(i=0;i<=col-1;i++)//????????????? 
   {
             j=0;
             k=i;
             do
             {
              cout<<s[j][k]<<endl;
              j++;  
              k--;                                     
             }while((j<=row-1)&&(k>=0));             
   }
   for(i=1;i<=row-1;i++)//?????????????
   {
                  j=col-1;
                  k=i;
                  do
                  {
                      cout<<s[k][j]<<endl;
                      k++;
                      j--;
                  }while((k<=row-1)&&(j>=0));      
   } 
return 0;
}
int main(){
	int n,m,i,j,k;
	int sz[100][100];
	scanf("%d%d",&m,&n);
	for(i=0;i<m;i++){
		for(j=0;j<n;j++){
		   scanf("%d",&sz[i][j]);                                               
		}	
	}
	
	for(j=0;j<n;j++){
			k=j;
			for(i=0;i<=k&&i<m;i++,j--){
			printf("%d\n",sz[i][j]);
			
			}
	j=k;
		
	}

	  for(i=1;i<m;i++){
		 k=i;
		 for(j=n-1;j>=0&&i<m;i++,j--){
			printf("%d\n",sz[i][j]);
			
		}
		i=k;
	  }

	
    
	return 0;
}
int main ()
{
	int *p[100][100];
	int n, i, j, row, col;
	scanf ("%d %d", &row, &col);
	for (i=0; i<100; i++)
		for (j=0; j<100; j++)
			*(*(p+i)+j)=(int *)malloc(LEN);
	for (i=1; i<=row; i++)
		for (j=1; j<=col; j++)
			scanf ("%d", *(*(p+i)+j));
		//printf ("%d", *(*(p+i)+j));}
	for (j=1; j<=col; j++)
	{
		int h=1, l=j;
		while (l>=1 && h<=row)
		{ printf ("%d\n", **(*(p+h)+l));
		h++; l--;}
	}
	for (i=2; i<=row; i++)
	{
		int l=col, h=i;
		while (l>=1 && h<= row)
		{ printf ("%d\n", **(*(p+h)+l));
		h++; l--;}
	}
	return 0;
}
int main()
{
	int row,col,time=0,i,j,n;
	int array[110][110];
	cin>>row>>col;
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			cin>>*(*(array+i)+j);
		}
	}
	for(int i=0;i<=row+col-2;i++)
	{
		if(i<col)
		{
			for(int j=0;j<row&&j<=i;j++)   
				cout<<*(*(array+j)+i-j)<<endl;
		}
		else
		{
			for(int j=col-1;j>=i-row+1&&j>=0;j--)    
				cout<<*(*(array+i-j)+j)<<endl;
		}
	}
	return 0;
}
int main()
{
	int row,col,a[100][100],i,j,max,s;
	scanf("%d %d",&row,&col);
	max=row;
	if(max<col)max=col;
	for(i=0;i<max;i++)
	{
		for(j=0;j<max;j++)
		{
			a[i][j]=-1;
		}
	}
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	if(max==1)printf("%d",a[0][0]);
	else{
	i=0;
	j=0;
	while(j<max)
	{
		if(a[i][j]!=-1)printf("%d\n",a[i][j]);
		if(j==0){
			j=i+1;
			i=0;
		}
		else{
			i=i+1;
			j=j-1;
		}
	}
	j=max-1;
	i=1;
	while(i!=max-1||j!=max-1)
	{
		if(a[i][j]!=-1)printf("%d\n",a[i][j]);
		if(i==max-1){
			i=j+1;
			j=max-1;
		}
		else{
			i=i+1;
			j=j-1;
		}
	}
	if(a[max-1][max-1]!=-1)printf("%d\n",a[max-1][max-1]);}
	return 0;
}
int main()
{
	int a[100][100],i,j,i1,j1;
	scanf("%d%d",&i,&j);
	for(i1=1;i1<=i;i1++)
	{
		for(j1=1;j1<=j;j1++)
		{
			scanf("%d",&a[i1][j1]);
		}
	}
	j1=1;
	i1=1;
	printf("%d",a[1][1]);
	while(j1!=j||i1!=i)
	{
		i1=i1+1;
		j1=j1-1;
		if(j1==0)
		{
			j1=i1;
			i1=1;
		}
		if(j1>j||i1>i) continue;
		printf("\n%d",a[i1][j1]);
	}
	return 0;
}
int main()
{
	int a[110][110];
	int row,col;//row????col???
	cin>>row>>col;
	for(int i1=0;i1<row;i1++)
	{
		for(int j1=0;j1<col;j1++)
			cin>>*(*(a+i1)+j1);
	}//??????? 
	if(row<col)
	{
		for(int i=0;i<col;i++)
	    {
			for(int j=i;j>=0;j--)
		    {
				if(i-j<=row-1&&i-j>=0)
			    cout<<*(*(a+(i-j))+j)<<endl;
		    }
	    }//?????????????,?????????????
	    for(int k=col;k<=col+row-2;k++)
	    {
			for(int w=col-1;w>=1;w--)
		    {
				if(k-w<=row-1&&w<=col-1)
				cout<<*(*(a+k-w)+w)<<endl;//???????????????????????????
		    }
	     }
	}
	else if(row>col)
	{
		for(int i=0;i<col;i++)
	    {
			for(int j=i;j>=0;j--)
		    {
				if(i-j<=row-1)
			    cout<<*(*(a+(i-j))+j)<<endl;
		    }
	    }//?????????????,?????????????
	    
		for(int k=col;k<=col+row-2;k++)
	    {
			for(int w=col-1;w>=0;w--)
		    {
				if(k-w>=0 && k-w<=row-1 && w<=col-1 && w>=0)
				      cout<<*(*(a+k-w)+w)<<endl;//???????????????????????????
		    }
	     }
	}
	else if(row=col)
	{
		for(int i=0;i<col;i++)
	    {
			for(int j=i;j>=0;j--)
		    {
				if(i-j<=row-1)
			    cout<<*(*(a+(i-j))+j)<<endl;
		    }
		}//?????????????,?????????????
	    for(int k=col;k<=col+row-2;k++)
	    {
			for(int w=col-1;w>=0;w--)
		    {
				if(k-w>=0 && k-w<=row-1 && w<=col-1 && w>=0)
				      cout<<*(*(a+k-w)+w)<<endl;//???????????????????????????
		    }
	     }
	}
    return 0;
}
int main()
{
  int i , j , n , k ;
  int row ,col ;
  int a[101][101] ; 
  cin >> row >> col ;
  for( i = 1 ;i <= row ; i ++ ) 
      for ( j = 1 ;j <= col ; j ++ )     
      {
         cin >> a[i][j] ;    
      }
  for( j = 1 ;j <= col ; j ++ )
  {
     cout << a[1][j] << endl ;
     int k = 1 ;
     while( ((1 + k) <= row )&&( (j - k) >= 1 ))
     {
       cout << a[1 + k ][j - k] << endl;
       k ++ ;
     }     
  }  
      for( i = 2 ; i <= row ;i ++ )
      {
        cout << a[i][col] << endl ;
        int k = 1 ;
        while( ((i + k) <= row)&&( (col - k) >= 1 ))
        {
       cout << a[i + k ][ col - k ] << endl;
       k ++ ;
         }     
      }
      return 0 ;
}
void main()
{
    int a[100][100],row,col,i,j,k,n;
    scanf("%d%d",&row,&col);
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
			scanf("%d",&a[i][j]);
	
	for(n=0;n<col;n++)
	{
		i=0;j=n;
	    for(k=n;k>=0;k--)
		{
			printf("%d\n",a[i][j]);
			i++;j--;
			if(i>=row||j>=col)
				break;
		}
	}
	for(n=1;n<row;n++)
	{
		i=n;j=col-1;
		for(k=n;k<=row-1;k++)
		{
			printf("%d\n",a[i][j]);
			i++;j--;
            if(i>=row||j<0)
				break;
		}
	}
	
}
void main()
{
    int i,j,k,min,**p,row,col;
    scanf("%d%d",&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);
    min=row<col?row:col;
    for(k=0;k<min;k++)
    for(i=0,j=k;i<=k;i++,j--)
    printf("%d\n",*(*(p+i)+j));
    if(col==min)
    for(k=1;k<row;k++)
    for(i=k,j=col-1;i<row&&j>=0;i++,j--)
    printf("%d\n",*(*(p+i)+j));
    else
    {
        for(k=min;k<col;k++)
        for(i=0,j=k;i<row;i++,j--)
        printf("%d\n",*(*(p+i)+j));
        for(k=1;k<row;k++)
        for(i=k,j=col-1;i<row;i++,j--)
        printf("%d\n",*(*(p+i)+j));
    }
}
int main()
{
	int row,col;
	cin>>row>>col;
	int a[110][110];
	int i,j;
	for(i=0;i<row;i++)
			for(j=0;j<col;j++){
				cin>>*(*(a+i)+j);
			}
	for(i=0;i<col;i++)
		for(j=0;j<=i&&j<row;j++){
			cout<<*(*(a+j)+i-j)<<endl;
		}
	for(i=1;i<row;i++)
			for(j=col-1;j>i+col-1-row&&j>=0;j--){
				cout<<*(*(a+i+col-j-1)+j)<<endl;
			}
	return 0;
}
int main()
{
	int n,m,a[100][100],b[10000],i,j,sum,t=0;///????
	cin>>n>>m;
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
		{
			cin>>a[i][j];
		}
		for(sum=2;sum<=(n+m);sum++)
		{
			
			for(j=1;j<=n;j++)
				
			{
				if((sum-j)>0&&(sum-j)<=m)
				{
					t++;
					b[t]=a[j][sum-j];
				}
				
			}
		}
		
		for(i=1;i<=(m*n);i++)
			cout<<b[i]<<endl;
		return 0;
}
int main()
{
	int row,col,a[100][100],i,j,k=0,b[10000],s;
	scanf("%d %d",&row,&col);
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	if(row>=col)
	{
		for(s=0;s<col;s++)
		{
			for(i=0;i<=s;i++)
			{
				b[k]=a[i][s-i];
				k++;
			}
		}
		for(s=col;s<row;s++)
		{
			for(i=s-col+1;i<=s;i++)
			{
				b[k]=a[i][s-i];
				k++;
			}
		}
		for(s=row;s<row+col-1;s++)
		{
			for(i=s-col+1;i<row;i++)
			{
				b[k]=a[i][s-i];
				k++;
			}
		}
	}
	else
	{
		for(s=0;s<row;s++)
		{
			for(i=0;i<=s;i++)
			{
				b[k]=a[i][s-i];
				k++;
			}
		}
		for(s=row;s<col;s++)
		{
			for(i=0;i<row;i++)
			{
				b[k]=a[i][s-i];
				k++;
			}
		}
		for(s=col;s<col+row-1;s++)
		{
			for(i=s-col+1;i<row;i++)
			{
				b[k]=a[i][s-i];
				k++;
			}
		}
	}
	for(i=0;i<k;i++)
	{
		printf("%d\n",b[i]);
	}
	return 0;
}
int main()
{
   int m,n;
   cin>>m>>n;
   int a[m][n];
   for(int i=0;i<m;i++)
     for(int j=0;j<n;j++)
       cin>>a[i][j];
   int sum=0;
   while(1)
   {
    if(sum==m+n-1) break;
    else if(sum<=n-1)
      {
       for(int i=0;i<=sum;i++)
         {
          if(i>m-1) break;
          cout<<a[i][sum-i]<<endl;
          }
         sum++;
       }
    else
      {
       for(int i=sum+1-n;i<=sum;i++)
         {
          if(i>m-1) break;
          cout<<a[i][sum-i]<<endl;
         }
       sum++;
       }
    }
 
 
 

 return 0;
 }
int main()
{
	int s[100][100],l,h,i,j,hang,lie;
	scanf("%d%d",&lie,&hang);
	for(l=0;l<lie;l++)
	{
		for(h=0;h<hang;h++)
		{
			scanf("%d",&s[h][l]);
		}
	}
	for(i=0;i<hang+lie-1;i++)
	{
		for(j=i;j>=0;j--)
		{
			if(j>hang-1)
			{
				j=hang-1;
			}
			h=j;
			l=i-h;
			if(l>lie-1)
			{
				break;
			}
			printf("%d\n",s[h][l]);
		}
	}
	return 0;
}
int main()
{
	int m,n;
	int i,j,r,s,p,k;
	int 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]);
		for(r=0;r<n;r++) {
			  p=r;
             for(s=0;p>=0;s++)
			 { if(s<m)
			   printf("%d\n",a[s][p]);
			    p--;
			 }
		}
		for(k=n;k<=m+n-2;k++) {
			p=n-1;
			for(s=k-n+1;s<m;s++) {
				if(p>=0)
				printf("%d\n",a[s][p]);
				p--;
			}
		}
		return 0;
}
int ROW,COL,ARRAY[MAXN][MAXN];

int main(){
	cin>>ROW>>COL;
	for(int i=0;i<ROW;i++){
		for(int j=0;j<COL;j++) cin>>ARRAY[i][j];
	}
	int iterx=0,itery=0;
	for(int iter=1;iter<=(ROW+COL-1);iter++){
		if(iter<=COL){
			iterx=0;
			itery=iter-1;
		}
		else{
			iterx=iter-COL;
			itery=COL-1;
		}
		while(iterx<ROW&&itery>=0){
			cout<<ARRAY[iterx][itery]<<endl;
			iterx++;
			itery--;
		}
	}
	return 0;
}
int mhang(int a){
	return a+1;
}
int mlie(int a){
	return a-1;
}
int main()
{
	int sz[100][100];
	int row,col,i,j,hang=0,lie=0;
	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++){
		hang=0;
		lie=i;
		while(1){
			printf("%d\n",sz[hang][lie]);
			hang=mhang(hang);
			lie=mlie(lie);
			if(hang>=row||lie<0){
				break;
			}
		}
	}
	for(i=1;i<row;i++){
		hang=i;
		lie=col-1;
		while(1){
			printf("%d\n",sz[hang][lie]);
			hang=mhang(hang);
			lie=mlie(lie);
			if(hang>=row||lie<0){
				break;
			}
		}	
	}
	return 0;	
}
main()
{ int n,k=0,i,j,r,c,t,*a,p;
  scanf("%d%d",&r,&c);
  a=(int*)calloc(r*c,sizeof(int));
  for(i=0;i<r*c;i++)
  scanf("%d",a+i);
  for(i=0;i<c;i++)
  { j=0;t=i;
    while(t>=0&&j<r)
    { printf("%d",*(a+j*c+t));
      printf("\n");
      t--;j++;
    }
  }

  for(i=1;i<r;i++)
  { j=c-1;t=i;
    while(t<r&&j>=0)
    {   printf("%d",*(a+t*c+j));
	if(!(j==c-1&&t==r-1))printf("\n");
	j--;t++;
    }
  }
}
void main()
{
	int n,m,i,j,k;
	int (*p)[200];
	p=(int (*)[200])malloc(200*200*sizeof(int));
	for(i=0;i<200;i++)
		for(j=0;j<200;j++)
		{
			*(*(p+i)+j)=-32767;
		}
	scanf("%d %d",&n,&m);
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
		{
			scanf("%d",*(p+i)+j);
		}
	for(k=0;k<=n+m-2;k++)
		for(i=0;i<=k && i<n;i++)
		{
			j=k-i;
			if(*(*(p+i)+j)>-32767)
			printf("%d\n",*(*(p+i)+j));
		}
}
int main()
{
	int sz[101][101];
	int row,col;
	scanf("%d%d",&row,&col);
	int i,j;
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			scanf("%d",&(sz[i][j]));
		}
	}
	printf("%d",sz[0][0]);
	int a;
	for(i=1;i<col;i++)
	{
		a=i;
		for(j=0;j<row&&j<=i;j++)
		{
			printf("\n%d",sz[j][a]);
			a--;
		}
	}
	for(j=1;j<row;j++)
	{
		a=j;
		for(i=col-1;a<row&&i>=0;i--)
		{
		    printf("\n%d",sz[a][i]);
			a++;
		}
	}
	return 0;
}
void main()
{
	int n,i,j,k,col,row;
	int *p[1000];
	for(i=0;i<1000;i++)
	{p[i]=(int *)malloc(10000*sizeof(int));}
	scanf("%d %d",&row,&col);
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			scanf("%d",(*(p+i)+j));
		}
	}
	if(col>row)
	{
    for(i=0;i<col;i++)
	{
	for(j=0;j<=i;j++)
	{
		if(j<row)
		{printf("%d\n",*(*(p+j)+i-j));}
		else
		{break;}
	}
	}
	 for(i=0;i<row;i++)
	{
	for(j=0;j<row;j++)
	{
		if(j+i+1<row)
		{printf("%d\n",*(*(p+j+i+1)+col-j-1));}
		else
		{break;}
	}
	}
	}
	else
	{
    for(i=0;i<col;i++)
	{
	for(j=0;j<=i;j++)
	{
		if(j<row)
		{printf("%d\n",*(*(p+j)+i-j));}
		else
		{break;}
	}
	}
	 for(i=0;i<row;i++)
	{
	for(j=0;j<col;j++)
	{
		if(j+i+1<row)
		{printf("%d\n",*(*(p+j+i+1)+col-j-1));}
		else
		{break;}
	}
	}
	}
}
int main()
{
int row,column,a[110][110]={0},i,j,row1=0,column1=0;
cin>>row>>column;
for(i=0;i<row;i++)
for(j=0;j<column;j++)
{
	cin>>*(*(a+i)+j);
	}
for(i=0;i<(row+column-1);i++)
{
	if(i<column)
	column1=i;
	else column1=column-1;
while(column1>=0)
{
	if((i-column1)<row)
	{cout<<*(*(a+i-column1)+column1)<<endl;//a[i-column1][column1]
	column1--;}
	else break;
}
}
return 0;
}
int main()
{
   int row,col;
   cin>>row>>col;
   int a[1000][1000];
   int i,j;
   int m,n;
   for(i=1;i<=row;i++)
   {
       for(j=1;j<=col;j++)
       {
           cin>>a[i][j];
       }
   }
   int time=0;
   for(j=1;j<=col;j++)
   {
       m=1;n=j;
       while(1)
       {
           cout<<a[m][n];
           time=time+1;
           if(time<row*col)
           cout<<endl;
           n=n-1;
           m=m+1;
           if(n<1)
            break;
            if(m>row)
            break;
       }
   }
   for(i=2;i<=row;i++)
   {
         m=i;n=col;
       while(1)
       {
           cout<<a[m][n];
           time=time+1;
           if(time<row*col)
           cout<<endl;
           n=n-1;
           m=m+1;

            if(n<1)
            break;
            if(m>row)
            break;
       }
   }







    return 0;
}
int main()
{
	int a[100][100],i,j,r,c,s;
	scanf("%d%d",&r,&c);
	for(i=0;i<r;i++)
	{
		for(j=0;j<c;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	for(s=0;s<r+c-1;s++)
	{
		for(i=0;i<=s;i++)
		{
			if(i<=r-1 && s-i<=c-1)
			{
				if(i==0 && s-i==0)
					printf("%d",a[0][0]);
				else
					printf("\n%d",a[i][s-i]);
			}
		}
	}
	printf("\n");
	return 0;
}
int main()
{
	int row,col,a[100][100],i,j,m,M,k;
	scanf("%d%d",&row,&col);
	for(i=0;i<row;i++){
		for(j=0;j<col;j++)
			scanf("%d",&a[i][j]);
	}
	if(row>col){M=row;m=col;}
	else{M=col;m=row;}
	for(k=0;k<m;k++){
		for(i=0;i<=k;i++)
			printf("%d\n",a[i][k-i]);
	}
	if(row>col){
		for(k=0;k<M-m;k++){
			for(i=0;i<m;i++)
				printf("%d\n",a[i+k+1][m-i-1]);
		}
	}
	else{
		for(k=0;k<M-m;k++){
		    for(i=0;i<m;i++)
			    printf("%d\n",a[i][m-i+k]);
		}
	}
	for(k=1;k<m;k++){
		for(i=0;i<m-k;i++)
			printf("%d\n",a[row-m+i+k][col-i-1]);
	}
	return 0;
}
void main(){
	int row,col,a[100][100],i,j,n;
	scanf("%d%d",&row,&col);
	for(i=0;i<row;i++){
		for(j=0;j<col;j++){
			scanf("%d",&a[i][j]);
		}
	}
    for(n=0;n<=row+col-2;n++){
		for(i=0;i<row && i<=n;i++){
			for(j=0;j<col && j<=n;j++){
				if(i+j==n) printf("%d\n",a[i][j]);
			}
		}
	}
}
main(){
       int row,col,i,j,*p[100];
       scanf("%d %d",&row,&col);
       for(i=0;i<row;i++){
         p[i]=(int*)malloc(sizeof(int)*col);
         for(j=0;j<col;j++){
           scanf("%d",p[i]+j);
         }
       }
       for(i=0;i<row+col;i++){
         for(j=i;j>=0;j--){
           if(i-j>=row||j>=col) continue;
           else printf("%d\n",*(p[i-j]+j));
         }
       }
}
/*
 * ???????????.cpp
 *
 *  Created on: 2011-10-24
 *      Author:???
 */

int main(){
    int a[100][100],row,col,i,j,s;//i?j?s?????????????
    cin>>row>>col;
    for(i=0;i<row;i++)
    	for(j=0;j<col;j++)
    		cin>>a[i][j];
    for(s=0;s<row+col-1;s++){//?????????????????s?????i????
    	for(i=0;i<row;i++){
    		if(s-i<col){//????if???????????????
    		    		if(s>=i)
    		    			cout<<a[i][s-i]<<endl;
    		    		else break;
    		    	}
    	}
    }
	return 0;
}
void main()
{
	int i,j,k,row,col,*p[100];
	scanf("%d%d",&row,&col);
	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(k=0;k<=row+col-2;k++)
		for(i=0,j=k-1;i<=row-1;i++,j--)
			if(i<=row-1&&j>=0&&j<=col-1&&i>=0)
				printf("%d\n",*(p[i]+j));
	printf("%d\n",*(p[row-1]+col-1));

}