semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
int row,col,array[100][100],sum,i,j;
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(sum=0;sum<=row-1;sum++)
   {
    for(i=0;i<=sum;i++)
    {
     j=sum-i;
     printf("%d\n",array[i][j]);
     }
    }
   for(sum=row;sum<=col-1;sum++)
   {
    for(i=0;i<=row-1;i++)
    {
     j=sum-i;
     printf("%d\n",array[i][j]);
     }
    }
   for(sum=col;sum<=col+row-2;sum++)
   {
    for(i=sum-col+1;i<=row-1;i++)
    {
     j=sum-i;
     printf("%d\n",array[i][j]);
     }
    }
 }
else
{
  for(sum=0;sum<=col-1;sum++)
   {
    for(i=0;i<=sum;i++)
    {
     j=sum-i;
     printf("%d\n",array[i][j]);
     }
    }
   for(sum=col;sum<=row-1;sum++)
   {
    for(i=sum-col+1;i<=sum;i++)
    {
     j=sum-i;
     printf("%d\n",array[i][j]);
     }
    }
   for(sum=row;sum<=row+col-2;sum++)
   {
    for(i=sum-col+1;i<=row-1;i++)
    {
     j=sum-i;
     printf("%d\n",array[i][j]);
     }
    }
 }
return 0;
}
int main()
{
    int row,col;
    int a[111][111];
    int *p[111];
    
    cin>>row>>col;
    
    for(int i=0;i<row;i++)
    p[i]=*(a+i);
    
    for(int i=0;i<row;i++)
        for(int j=0;j<col;j++)
            cin>>*(p[i]+j);
    
    for(int i=0;i<row+col-1;i++)
        for(int j=i;j>=0;j--)
        {
            if(j>=col || i-j >=row)
                continue;
            if(j<col && i-j<row)
                cout<<*(p[i-j]+j)<<endl;
        }
    
    
    return 0;
}
/*
 * erweishuzuyoushangzuoxiabianli.cpp
 *
 *  Created on: 2012-12-17
 *      Author: 1200012791??
 *      ???????row?col??????array????array[0][0]?????????????????????????
 */
int main() {
	int row = 0, col = 0, i = 0, j = 0;//??4?????
	cin >> row >> col;//?????
	int a[row][col];//??1?????
	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 = 0; j < row - i && j < col; j++)
			cout << *(*(a + i + j) + col - 1 - j) << endl;
	return 0;
}
int main()
{
	int array[100][100] ;
	int col , row = 0 ;
	cin >> row >> col ;
	for ( int i = 0 ; i < row ; i++ )
		for ( int j = 0 ; j < col ; j++ )
			cin >> * ( * ( array + i ) + j ) ;
	cout << * * array << endl ;
	if ( row == 1 && col == 1 ) return 0 ;
	if ( col == 1 )
	{
		for ( int i = 1 ; i < row ; i++ )
			cout << * * ( array + i ) << endl ;
		return 0 ;
	}
	int r = 0 , l = 1 ;
	int begl = 1 , begr = 0 ;
	while ( r != row - 1 || l != col - 1 )
	{
		cout << * ( * ( array + r ) + l ) << endl ;
		r++ ; l-- ;
		if ( l < 0 || r == row )//?????
		{
			begl++ ;//??????
			if ( begl == col )//??????????????????
			{
				begl-- ;
				begr++ ;
			}
			l = begl ;
			r = begr ;
		}
	}
	cout << * ( * ( array + r ) + l ) << endl ;

	return 0 ;
}
// ( > w < ) finished~
/*
 * 14.cpp
 *
 *  Created on: 2013-12-7
 *      Author: Administrator
 */

int main()
{
	int row,col,i,j,s,*p=NULL;
	cin>>row>>col;
	int a[100][100];
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
			{
			cin>>*(*(a+i)+j);
			//cin>>a[i][j];//????
			}
 for(s=0;s<=row+col-2;s++)//??????????
 {
	 for(i=0;i<row;i++)
	 if(s-i<col&&s-i>=0)
	 {
		 cout<<*(*(a+i)+s-i)<<endl;
		// cout<<a[i][s-i]<<endl;
	 }

 }
  return 0;
}
/*??????????????????*/
int main()
{
	int z[100][100];
	int m,n,a,b,c;
	scanf("%d%d",&m,&n);
	for(a=0;a<=m-1;a++)
	{
		for(b=0;b<=n-1;b++)
		{
			scanf("%d",&z[a][b]);
		}
	}
	a=0;b=0;
	for(c=0;c<=m*n-1;c++)
	{
		printf("%d\n",z[a][b]);
		a++;b--;
		if((a>m-1)||(b<0))
		{
			while((a>0)&&(b<n-1))
			{
				a--;b++;
			}
			if((a==0)&&(b<n-1)) b++;
			else a++;
		}
	}
	return 0;
}
void main()
{
	int row,col,i,j,k,*p;
	scanf("%d %d",&row,&col);
	p=(int *)malloc(sizeof(int)*row*col);
	for(i=0;i<row*col;i++)
		scanf("%d",p+i);
	printf("%d\n",*p);p++;
	for(i=1;i<col;i++,p++)
		for(j=0,k=0;k<=i&&(i+j)<(row*col);k++,j=j+col-1)
			 printf("%d\n",*(p+j));
	p+=col-1;
	for(i=1;i<=(row-1);i++,p+=col)
		for(j=0,k=0;k<(row-i)&&k<col&&*(p+j)!=0;k++,j=j+col-1)
			printf("%d\n",*(p+j));


}
int main()
{
	int a[100][100]={0};
	int row,col;
	cin >> row>> col;
	for( int i=0;i<row;i++)
		for ( int j=0;j<col;j++)
			cin >> *(*(a+i)+j);
	for( int m=0;m<row+col-1; m++)
	 for( int i=0 ;i<row ;i++)
		 for(int j=0;j<col;j++)
			 if(i+j==m)
				 cout<<*(*(a+i)+j)<<endl;
	return 0;

}
int main()
{
    int row,col,a[100][100];
    int 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<col;++i)
        for(j=0;(i-j>=0) && (j<row);++j)
            printf("%d\n",a[j][i-j]);
    for(i=1;i<row;++i)
        for(j=0;(j<col) && (i+j<row);++j)
            printf("%d\n",a[i+j][col-j-1]);
    return 0;
}
/*
 * 1104.cpp
 *
 *  Created on: 2011-11-4
 *      Author: Administrator
 */
int main ()
{
	int row,col,i,j,k,sum;        //????  
	cin>>row>>col;
	int array[row][col];
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
			cin>>array[i][j];     //????
	sum=row+col;
	for(k=2;k<=sum;k++)
		for(i=1;i<=row;i++)
			for(j=col;j>0;j--)
				if(i+j==k)
					{cout<<array[i-1][j-1]<<endl;break;}//???????????? ????
	return 0;
}
int main()
{
   int i,j,k,row,col,array[100][100];//????
   cin>>row>>col;//????
   for(i=0;i<row;i++)//????
    for(j=0;j<col;j++)
    {
        cin>>array[i][j];
    }
     for (k=0;k<=col+row-2;k++)//????
        for (i=0;i<=k;i++)
        {
            j=k-i;
            if(i<row&&j>=0&&j<col) cout<<array[i][j]<<endl;//??????
        }
    return 0;
}
int main()
{
	int array[100][100];
	memset(array,0,sizeof(array));
	int i,j,k,row,col;
	cin>>row>>col;
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
			cin>>array[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)
					cout<<array[i][j]<<endl;
			}
	}
	return 0;
}
int main(int argc,char *argv[])
{
	int a[100][100];
	int row,col,i,j,k;
	cin>>row>>col;
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
			cin>>a[i][j];
	for(k=0;k<=col-1;k++)
		for(i=0,j=k-i;i<=row-1 && j>=0;i++,j--)
			cout<<a[i][j]<<endl;
	for(k=col;k<=row+col-2;k++)
		for(j=col-1,i=k-j;i<=row-1 && j>=0;i++,j--)
			cout<<a[i][j]<<endl;
	return 0;
}
/*
 *  Name:homework.cpp
 *  Created on: 2012-12-10
 *  Author: Meng Li
 *  Function:????
 */


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

for(x=1;x<a;x++)
{   
     
    for(j=x,i=b-1;j<a&&i>=0;j++,i--)
     printf("%d\n",n[j][i]);
 }
int z;
scanf("%d",&z);
return 0;
}
int main()
{
	int a[1000][1000];
	int row, col, i, j, k;
	for(i=0;i<1000;i++)
		for(j=0;j<1000;j++)
			a[i][j]=-12345;
		scanf("%d%d", &row, &col);
		for(i=0;i<row;i++)
			for(j=0;j<col;j++)
				scanf("%d", &a[i][j]);
			for(j=0;j<1000;j++)
				for(k=j,i=0;k>=0;k--,i++)
				{
					if(a[i][k]!=-12345)
					printf("%d\n", a[i][k]);
				}


				
	
			
			return 0;
			
			
			
}
int main(){
	int ROW,COL,j;
	scanf("%d%d",&ROW,&COL);
	int sz[100][100];
	int row,col;
	for(row=0;row<ROW;row++){
		for(col=0;col<COL;col++){
			scanf("%d",&sz[row][col]);
		}
	}
	if(ROW==COL){
	    if(ROW==1){
		    printf("%d\n",sz[ROW-1][COL-1]);
		}
	    else{
	        for(col=0;col<COL;col++){
		        j=col;
		        row=0;
		        do{
			        printf("%d\n",sz[row][col]);
			        row++;
			        col--;
				}
		        while(col>-1);
		        col=j;
			}
	        for(row=1;row<ROW;row++){
		        j=row;
		        col=COL-1;
		        do{
			        printf("%d\n",sz[row][col]);
			        row++;
			        col--;
				}
		        while(row<ROW);
	            row=j;
			}
		}
	}
	else{
        for(col=0;col<COL-1;col++){
			j=col;
		    row=0;
            do{
				printf("%d\n",sz[row][col]);
			    row++;
		        col--;
			}
		    while((col>-1)&&(row<ROW));
		    col=j;
		}
        for(row=0;row<ROW;row++){
            j=row;
	        col=COL-1;
	        do{
				printf("%d\n",sz[row][col]);
			    row++;
		        col--;
			}
	        while((row<ROW)&&(col>-1));
			row=j;
		}
	}
	return 0;
}
/*
 * 105.cpp
 *
 *  Created on: 2011-10-28
 *      Author: think
 */
int main(){
	int rol,col;
	cin>>rol>>col;
	int a[rol][col];
	int i,j;
	for(i=0;i<rol;i++){
		for(j=0;j<col;j++){
			cin>>a[i][j];
		}
	}
	int k;//????
	for(k=0;k<=rol+col-2;k++){
		for(i=0;k-i>=0&&i<rol;i++){
			if(k-i>=col){continue;}
			j=k-i;
			cout<<a[i][j]<<endl;
		}
	}
	return 0;
}
void main()
{
     int a,b,n,j,i,k,*hi,col,row,s,max;
     scanf("%d %d",&row,&col);
     s=row*col;

    int *p=(int*)malloc(10000*sizeof(int));
hi=p;
if(col>row)  max=col;
else  max=row;
for(i=0;i<s;i++)
scanf("%d",p+i);
for(j=0;j<col+row;j++)
 for(k=0;k<=j;k++) 
 if(j-k<col&&k<row)
   printf("%d\n",*(hi+j-k+col*k));
}
int main(){
   int h,l,i,k,g,s[100][100];
   scanf("%d %d",&h,&l);
   for(i=0;i<h;i++){
      for(k=0;k<l;k++){
          scanf("%d",&s[i][k]);
        }
    }
   for(g=0;g<=(h+l-2);g++){
          i=0;
          while(i<h){
            if(g-i>=l){
                      i++;
            }else{
                  break;
                  }
            }
		 
            while(i<h&&(g-i>-1)&&(g-i<l)){
                  printf("%d\n",s[i][g-i]);
               
                  i++;
                  }
                  }
    return 0;
}
int a[row][col];
int main(){
	int r,c,i,j,n;
	scanf("%d%d",&r,&c);
	for(i=0;i<r;i++){
		for(j=0;j<c;j++){
			scanf("%d\n",&a[i][j]);}
	}
	for(n=0;n<=c+r-2;n++){
		for(i=0;i<=n&&i<r;i++){
			j=n-i;
			if(j<c){
			printf("%d\n",a[i][j]);
			}
		}
	}
	
		
		

	
	return 0;
}
int min(int x,int y)
{
	if(x<=y)return x;
	else return y;
}
int main()
{
	int a[100][100],row,col,ROW,COL,i,m=1,n=0,x;
	scanf("%d%d",&ROW,&COL);
	for(row=0;row<ROW;row++)
	{
		for(col=0;col<COL;col++)scanf("%d",&a[row][col]);
	}
	x=min(ROW,COL);
	row=0;
	col=0;
	for(i=0;i<x+x*(x-1)/2;i++)
	{
		printf("%d\n",a[row][col]);
		n++;
		if(n!=m)
		{
			row++;
			col--;
		}
		else if(n==m)
		{
			row=0;
			col+=m;
			m++;
			n=0;
		}
	}
	if(COL>=ROW)
	{
		row=0;
		col=ROW;
		m=col+1;
		for(i=0;i<ROW*(COL-ROW);i++)
		{
			printf("%d\n",a[row][col]);
			if(row!=ROW-1)
			{
				row++;
				col--;
			}
			else
			{
				row=0;
				col=m;
				m++;
			}
		}
		row=1;
		col=COL-1;
		m=ROW-1;
		n=0;
		for(i=0;i<ROW*(ROW-1)/2;i++)
		{
			n++;
			printf("%d\n",a[row][col]);
			if(n!=m)
			{
				row++;
				col--;
			}
			else
			{
				row=ROW-m+1;
				col=COL-1;
				m--;
				n=0;
			}
		}
	}
	if(COL<ROW)
	{
		row=1;
		col=COL-1;
		m=2;
		for(i=0;i<COL*(ROW-COL);i++)
		{
			printf("%d\n",a[row][col]);
			if(col!=0)
			{
				row++;
				col--;
			}
			else
			{
				row=m;
				col=COL-1;
				m++;
			}
		}
		row=ROW-COL+1;
		col=COL-1;
		m=COL-1;
		n=0;
		for(i=0;i<COL*(COL-1)/2;i++)
		{
			n++;
			printf("%d\n",a[row][col]);
			if(n!=m)
			{
				row++;
				col--;
			}
			else
			{
				row=ROW-m+1;
				col=COL-1;
				m--;
				n=0;
			}
		}
	}
	return 0;
}
int main()
{
	int array[100][100];
	int row;
	int col;
	int i;
	int j;
	int t;

	scanf("%d%d",&row,&col);
	for(i=0;i<row;i++){
		for(j=0;j<col;j++){
			scanf("%d",&array[i][j]);
		}
	}

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

	return 0;
}
void main()
{
	int a,b,i,j,k;
	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]);
		}
	}
	if(b>a){
		for(k=0;k<a;k++){
		i=0;
	    j=k;
		while(i<=k){
        printf("%d\n",c[i][j]);
		i=i+1;
		j=j-1;
		}
	}
	for(k=0;k<b-a;k++)
	{
		i=0;
	j=a+k;
	while(i<=a-1)
	{
		printf("%d\n",c[i][j]);
		i++;
		j--;
	}
	}
	for(k=0;k<a-1;k++)
	{
		i=k+1;
	j=b-1;
	while(i<=a-1)
	{
		printf("%d\n",c[i][j]);
		i++;
		j--;
	}
	}
	}
	else if(b<a)
	{
		for(k=0;k<b;k++){
		i=0;
	    j=k;
		while(j>=0){
        printf("%d\n",c[i][j]);
		i=i+1;
		j=j-1;
		}
	}
			for(k=0;k<a-b;k++)
	{
		i=k+1;
	j=b-1;
	while(j>=0)
	{
		printf("%d\n",c[i][j]);
		i++;
		j--;
	}
	}	
			for(k=0;k<b-1;k++)
	{
		i=a-b+1+k;
	j=b-1;
	while(i<=a-1)
	{
		printf("%d\n",c[i][j]);
		i++;
		j--;
	}
	}
	}
	else
	{
	for(k=0;k<a;k++){
		i=0;
	    j=k;
		while(i<=k){
        printf("%d\n",c[i][j]);
		i=i+1;
		j=j-1;
		}
	}
	for(k=0;k<a-1;k++)
	{
		i=k+1;
	j=b-1;
	while(i<=a-1)
	{
		printf("%d\n",c[i][j]);
		i++;
		j--;
	}
	}
}
}
/*
 * point1005.cpp
 *
 *  Created on: 2013-12-4
 *      Author: weng
 */


int main()
{
	int n , m , i , j , * p = NULL ;
	cin >> n >> m ;
	int a[n][m] ;
	for( p = * a ; p < * ( a ) + n * m ; p ++ )
			cin >> * p ;
	for( i = 0 , j = 0 ; i < n ; i ++ )
	{
		for( ; j < m ; j ++ )
		{
			p = *a + m * i + j ;
			for( int k = 0 ; k <= j && k <= m && k <= n && k < n - i ; k ++ )
				cout << * ( p + ( m - 1 ) * k ) << endl ;
		}
		j -- ;
	}
	return 0 ;
}
int main()
{
   int h,z,i,sz[100][100],k;
   scanf("%d %d",&h,&z);
   for(i=0;i<h;i++)
   {
       for(k=0;k<z;k++)
       {
            scanf("%d",&sz[i][k]);
       }
   }
   for(i=0;i<=h+z-2;i++)
   {
       for(k=0;k<h;k++)
       {
          if(i-k<0||i-k>=z)
          {
             continue;
          } 
          else
          {                                
              printf("%d\n",sz[k][i-k]);
          }
       }                
   }
   return 0;
}
void main(){
	int row,col,max;
	scanf("%d%d",&row,&col);
	int i,j;
	int a[101][101];
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
		{
			scanf("%d",&a[i][j]);
		}
	for(i=0;i<=row+col-2;i++)
		{
			max=0;
			if(row-1<i) max=row-1;
			else max=i;
		for(j=0;j<=max;j++)
			{
			if(i-j<=col-1)
				{
					printf("%d\n",a[j][i-j]);
				}
			}
		}
}
main()
{
      int m,n,i,j,k,l,p,q;
      int s[120][120];
      scanf("%d%d",&m,&n);
      for (i=1;i<=m;i++)
      {
       for (j=1;j<=n;j++)
       {
       scanf("%d",&s[i][j]);
      } 
      }
      l=0;
      i=1;j=1;
      while (l<n*m)
      {
            printf("%d\n",s[i][j]);
            l++; 
            if ((j==1)&&(i+1<=n)) 
            {
               j=i+1;
               i=1;
               }
           else if((j==1)&&(i+1>n))
           {
                i=i-n+2;
                j=n;
                }        
           else if (i==m)
           {
                if (j+i<=n)
                {
                           j=j+i;
                           i=1;
                           }
                else 
                {
                     i=j-n+m+1;
                     j=n;
                     }     
                     }
            else                    
            {
                i=i+1;
                j=j-1;
              }  
       }                               
            
                               
                                }
int main()
{
int r,c,i,j,a[101][101],p;
scanf("%d%d",&r,&c);
for(i=1;i<=r;i++)
{
  for(j=1;j<=c;j++)
  {
   scanf("%d",&a[i][j]);
  }
}
for(p=2;p<=r+c;p++)
{
if(p-1<=c)
{
i=1;
j=p-i;
}
else
{
	j=c;
	i=p-j;
}
while (i>=1&&j>=1&&i<=r&&j<=c)
{
	printf("%d\n",a[i][j]);
	i++;
	j--;
}
}
return 0;
}
/*
 * array.cpp
 * ??????
 * ????: 2012-12-14
 * ???????????????????????
 */
int main(){
	int row,col,a[100][100];
	cin>>row>>col;
	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<row&&i-j>=0;j++)
		{
			cout<<*(*(a+j)+i-j)<<endl;//???????????
		}
	}
	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;
		}
	}
	return 0;//????


}
int main()
{
	int i,(*p)[100],row,col,r,c,j;
    scanf("%d %d",&row,&col);
    p=(int(*)[100])calloc(100,100*sizeof(int));

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

	return 0;
}
int main()
{
	int a[100][100];
	int row=0,col=0;
	cin>>row>>col;
	int (*p)[100]=a;

	//cout<<*(p[0]+2)<<endl;
	int i,j;
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
			cin>>*(p[i]+j);
	for(i=0;i<row+col-1;i++)
		for(j=0;j<row;j++)
		{
			if(i-j>=0 && i-j<col)
				cout<<*(p[j]+i-j)<<endl;
		}
	return 0;
}
int main() {
	int row, col;
	cin>>row>>col;
	int data[100][100];
//??????
	for(int i=0; i<row; i++){
		for(int j=0; j<col; j++){
			cin>>data[i][j];
		}
	}
//?????
	for(int i=0; i<col; i++){		//?????????????
		int m=0, n=i;
		while(true){
			cout<<data[m][n]<<endl;
			m++;
			n--;
			if(m==row || n==-1)		//?????????
				break;
		}
	}
	for(int i=1; i<row; i++){		//??????????????
		int m=i, n=col-1;
		while(true){
			cout<<data[m][n]<<endl;
			m++;
			n--;
			if(m==row || n==-1)		//?????????
				break;
		}
	}
	return 0;
}
void f(int *p1,int *p2,int m,int n)
{
    do{printf("%d\n",*p2);p2+=n-1;}
    while((p2-p1+1)%n&&(p2-p1+1)<=m*n);
}

int main(int argc, char *argv[])
{
    int r,l,i,j,*q;
    scanf("%d%d",&r,&l);
    int *p[l+r-1];
    int a[r][l];
    for(i=1;i<=r;i++)
    for(j=1;j<=l;j++)
    scanf("%d",&a[i-1][j-1]);
    for(i=1;i<=l;i++)
    p[i-1]=&a[0][i-1];
    for(i=l+1;i<=l+r-1;i++)
    p[i-1]=&a[i-l][l-1];
    q=&a[0][0];
    for(i=1;i<=r+l-1;i++)
    f(q,p[i-1],r,l);
   
    return 0;
}
//********************************
//*???1   **
//*?????? 1200012867 **
//*???2012.  **
//********************************

int main()
{
	int a[100][100];
	int aa[10000];
	int r,c,i,i1,j,k,r1,c1;
	cin >> r >> c;
	for (i = 0; i < r; i++)
	{
		for (j = 0; j< c; j++)
			cin >> a[i][j];
	}
	r1 = 0;
	c1 = 0;
	k = 0;
	i1 = 0;
	while (1)
	{
		if (c1 < c - 1)
		{
			i = 0;
			for (j = c1; j >= 0; j--)
			{
				aa[k] = a[i][j];
				k++;
				if (i < (r-1))
					i++;
				else
					break;
			}
			c1++;
		}
		else
		{
			i = i1;
			for (j = c1; j >= 0; j--)
			{
				aa[k] = a[i][j];
				k++;
				if (i < (r-1))
					i++;
				else
					break;
			}
			i1++;
		}
		if ((i == (r - 1)) && (j == (c - 1)))
			break;
	}
	for (i = 0; i < k; i++)
	{
		cout << aa[i] << endl;
	}
	cin.get();
    cin.get(); //????
	return 0;
}
int main()
{
	int number[101][101];
	int row,col;
	cin>>row>>col;
	int i,j;
    for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			cin>>*(*(number+i)+j);
		}
	}
	//cout<<number[0][0]<<endl;
	int k;
	for(i=0;i<row+col-1;i++)
	{
		j=0;
		/*while(i-j>=0)
		{
			if(j>=row||i-j>=col)
				continue;
			cout<<*(*(number+j)+i-j)<<endl;
			j++;
		}*/
		for(j=0;i-j>=0;j++)
		{
			if(j>=row||i-j>=col)
				continue;
			cout<<*(*(number+j)+i-j)<<endl;
			
		}
	}
	return 0;
}
int main()
{
	int i,j,k,l,n,m,row,col;
	int a[200][200]={0};
	scanf("%d%d",&row,&col);
	for(i=1;i<=row;i++)
		for(j=1;j<=col;j++)
			scanf("%d",&a[i][j]);
	for(i=1;i<row+col+1;i++)
		for(j=1;j<=i;j++)
			if(a[j][i-j]!=0)
			printf("%d\n",a[j][i-j]);
	return 0;
}
int main()
{
int col,row,array[100][100],a,b,c,d,e;
scanf("%d%d",&row,&col);
for(a=0;a<row;a++)
{
for(b=0;b<col;b++)
{
scanf("%d",&array[a][b]);
}
}
for(c=0;c<col;c++)
{
e=c;
for(d=0;c>=0&&d<row;d++,c--)
{
printf("%d\n",array[d][c]);
}
c=e;
}
for(d=1;d<row;d++)
{
e=d;
for(c=col-1;d<row&&c>=0;c--,d++)
{
printf("%d\n",array[d][c]);
}
d=e;
}
return 0;
}
int main()
{int array[1000][1000],a[1000];
int row,col;
int i,j;

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

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

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

return 0;
}
int main()
{
	int array[100][100],row,col,i,j,x,y;
	scanf("%d%d",&row,&col);
	for(i=0;i<=row-1;i++)
	{
		for(j=0;j<=col-1;j++)
		{
			scanf("%d",&array[i][j]);
		}
	}
	if(row==col)
	{
		for(i=0;i<=col-1;i++)
		{
			x=i;
		    for(j=0;j<=i;j++)
			{
				printf("%d\n",array[j][x]);
			    x--;
			}
		}
	    for(i=1;i<=row-1;i++)
		{
			y=i;
		    for(j=col-1;j>=i;j--)
			{
				printf("%d\n",array[y][j]);
			    y++;
			}
		}
	}
	else if(row<col)
	{
		for(i=0;i<=row-1;i++)
		{
			x=i;
		    for(j=0;j<=i;j++)
			{
				printf("%d\n",array[j][x]);
			    x--;
			}
		}
		for(j=row;j<=col-1;j++)
		{
			x=j;
			for(i=0;i<=row-1;i++)
			{
				printf("%d\n",array[i][x]);
					x--;
			}
		}
		for(i=1;i<=row-1;i++)
		{
			y=i;
		    for(j=col-1;j>=i+col-row;j--)
			{
				printf("%d\n",array[y][j]);
			    y++;
			}
		}
	}
	else
	{
		for(i=0;i<=col-1;i++)
		{
			x=i;
		    for(j=0;j<=i;j++)
			{
				printf("%d\n",array[j][x]);
			    x--;
			}
		}
		for(i=1;i<=row-col;i++)
		{
			x=i;
			for(j=col-1;j>=0;j--)
			{
				printf("%d\n",array[x][j]);
					x++;
			}
		}
		for(i=row-col+1;i<=row-1;i++)
		{
			y=i;
		    for(j=col-1;j>=i-row+col;j--)
			{
				printf("%d\n",array[y][j]);
			    y++;
			}
		}
	}
}
int main ()
{
	int i,j,k,a,b;
	int s[100][100];
	scanf("%d%d",&a,&b);
	for(j=0;j<a;j++)
	{
		for(i=0;i<b;i++)
		{
			scanf("%d",&s[j][i]);
		}
	}
	for(j=0;j<b;j++)
	{
		k=j;
		for(i=0;;i++)
		{
			if(i==a)
			{
				break;
			}
			printf("%d\n",s[i][k]);
			k--;
			if(k<0)
			{
				break;
			}
		}
	}
	for(j=1;j<a;j++)
	{
		k=j;
		for(i=b-1;i>=0;i--)
		{
            printf("%d\n",s[k][i]);
			k++;
			if(k==a)
			{break;}
		}
	}
	return 0;
}
int main(){
	int sz[100][100],ROW,COL;
	int i,j,z,t;
	scanf("%d %d",&ROW,&COL);
	for(j=0;j<ROW;j++){
		for(i=0;i<COL;i++){
			scanf("%d",&sz[j][i]);
		}
	}
	t=ROW+COL;
	for(z=0;z<t;z++){
		for(j=0;j<ROW;j++){
			i=z-j;
			if((i>=0)&&(i<COL)){
				printf("%d\n",sz[j][i]);
			}
		}
	}
	return 0;
}
void main()
{int a[100][100],row,col,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(row==1)
{for(j=0;j<col;j++)
printf("%d\n",a[0][j]);

}
else
{	 for(j=0;j<col;j++)
 {   i=0;
     k=j;
	 while(k>=0&&i<row)
 {     printf("%d\n",a[i][k]);
	   k--;
	   i++;
 }
 }
 for(i=1;i<row-1;i++)
 {   j=col-1;
     k=i;
     while(j>=0&&k<row)
	 { printf("%d\n",a[k][j]);
	   j--;
	   k++;
	 }
 }
 printf("%d\n",a[row-1][col-1]);
}
}