semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main(int argc, char* argv[])
{
	int r,c,i,j,s;
	scanf ("%d%d",&r,&c);
	int x[100][100];
	for (i=0;i<r;i++)
	{
		for (j=0;j<c;j++)
		{
		scanf ("%d",&x[i][j]);
		
		}
	}
    s=0;
	while (s<=r+c-2)
	{
	 for (i=0;i<r;i++)
	 {
	  for (j=0;j<c;j++)
	  {
	  if (i+j==s)
	  {
	  printf ("%d\n",x[i][j]);
	  
	  }
	  
	  
	  }
	 
	 
	 }
	
	s++;
	}
   
	
	
	
	
	return 0;
}
/*
 * Traverse?Diagonal(Pointer).cpp
 *
 *  Created on: 2012-12-10
 *      Author: Czxck001
 */
int row = 0, col = 0;
void Input(int(*array)[105]) {
	cin >> row >> col;
	for (int i = 0; i <= row - 1; i++) {
		for (int j = 0; j <= col - 1; j++) {
			cin >> *(*(array + i) + j);
		}
	}
}
void Diagonal(int(*array)[105], int x, int y) {
	for (int i = 0;; i++) {
		if (x + i > row - 1 || y - i < 0)
			break;
		else {
			if (x == 0 && y == 0) {
				cout << **array;
			} else {
				cout << endl << *(*(array + x + i) + y - i);
			}
		}
	}
	return;
}
void Scan(int(*array)[105], int x, int y) {
	Diagonal(array, x, y);
	if (y < col - 1)
		Scan(array, x, y + 1);
	else if (x < row - 1)
		Scan(array, x + 1, y);
	else
		return;
}
int main() {
	int a[105][105];
	Input(a);
	Scan(a, 0, 0);
}
int main()
{
	int x,y,i,j,a[100][100];
	double b[100][200];
	for(j=0;j<200;j++)
		for(i=0;i<100;i++)
			b[i][j]=0.5;
	cin>>x>>y;
	for(i=0;i<x;i++)
		for(j=0;j<y;j++)
			cin>>a[i][j];
	for(i=0;i<x;i++)
		for(j=0;j<y;j++)
			b[i][j+i]=a[i][j];
	for(j=0;j<200;j++)
		for(i=0;i<100;i++)
			if(b[i][j]!=0.5)
				cout<<b[i][j]<<endl;
	return 0;
}
int main (){
	int a[100][100];
	int (*p)[100]=a;
	int i,j;
	int r,c;
	cin>>r>>c;
	for(i=0;i<=r-1;i++)
		for(j=0;j<=c-1;j++)
			cin>>*(*(p+i)+j);
	int t;
	for(t=0;t<=c-1;t++)
	{
		for(i=0,j=t;(j>=0)&&(i<=r-1);i++,j--)
			cout<<*(*(p+i)+j)<<endl;
	}
	for(t=1;t<=r-1;t++)
	{
		for(i=t,j=c-1;(j>=0)&&(i<=r-1);i++,j--)
			cout<<*(*(p+i)+j)<<endl;
	}
}
int main()
{
	int r,c,a[100][100] = {0},i,j,m,n = 1;
	cin >> r >> c;
	for(i = 1;i <= r;i++)
	{
		for(j = 1;j <= c;j++)
		{
			cin >> a[i][j];
		}
	}
	for(i = 1;i < c;i++)
	{
		m = i;
		n = 1;
		while((m >= 1)&&(n <= r))
		{
			cout << a[n][m] << endl;
			m--;
			n++;
		}
	}
	for(i = 1;i <= r;i++)
	{
		m = c;
		n = i;
		while((m >= 1)&&(n <= r))
		{
			cout << a[n][m] << endl;
			m--;
			n++;
		}
	}
	return 0;
}
int main()
{
	int row,col,a[100][100],k,j,i,m;
	scanf("%d %d",&row,&col);
	for(j=0;j<row;j++){
		for(i=0;i<col;i++){
			scanf("%d",&a[j][i]);
		}
	}

	for(i=0;i<col;i++){
		j=0;
		for(m=i;(j<row)&&(m>=0);j++,m--){
			printf("%d\n",a[j][m]);
		}
	}
	for(j=1;j<row;j++){
		    i=col-1;
			for(m=i,k=j;(k<row)&&(m>=0);k++,m--){
			printf("%d\n",a[k][m]);
		}
	}
	
	return 0;
}
int main ()
{
    int n,m;
    scanf ("%d %d", &n,&m);
    int s[100][100];
    int i,j;
    int k=0,l=0;
    for (i=0;i<=n-1;i++)
    {
        for (j=0;j<=m-1;j++)
        {
            scanf ("%d", &s[i][j]);
        }
    }
    for (i=0;i<=m-1;i++)
    {
         k=0;l=i;
         for (j=0;;j++)
         {
             printf ("%d\n", s[k][l]);
             if (l==0||k==n-1)
             {
                      break;
             }
             k=k+1;
             l=l-1;
         }
    }
    for (i=1;i<=n-1;i++)
    {
        k=i;l=m-1;
        for (j=0;;j++)
        {
            printf ("%d\n", s[k][l]);
            if (k==n-1||l==0)
            {
                       break;
            }
            k=k+1;
            l=l-1;
        }
    }
    
    return 0;
}
/*
 * ewsz.cpp
 *
 *  Created on: 2011-11-8
 *      Author: FXD
 */
int main()//
{//
	int a[100][100],col,row,t,i,j;//
	cin>>row>>col;//???????
	if(row>col)//
		t=row;
	else t=col;//t?row?col?????
	for(i=1;i<=row;i++)
	{
		for(j=1;j<=col;j++)
		{
			cin>>a[i][j];//????????

		}
	}



	for(i=2;i<=2*t;i++)
	{
		for(j=1;j<i;j++)
		{
			if(j<=row&&i-j<=col)
			{
				cout<<a[j][i-j]<<endl;//??row*col????????????
			}
		}
	}
	return 0;
}
int main()
{
    int row,col,a[102][102],i,j,k;
    int (*p)[102]=a;
    cin>>row>>col;
    for (i=0;i<row;i++)
    {
        for (j=0;j<col;j++)
        {
            cin>>*(*(p+i)+j);
        }
    }
    for (j=0;j<col;j++)
    {
        i=0;
        k=j;
        while (k>=0&&i<row)
        {
              cout<<*(*(p+i)+k)<<endl;
              i++;
              k--;
        }
    }
    for(i=1;i<row;i++)
    {
                      j=col-1;
                      k=i;
                      while(k<row&&j>=0)
                      {
                            cout<<*(*(p+k)+j);
                            if (i!=row-1||j!=col-1) cout<<endl;
                            k++;
                            j--;
                      }
    }            
    return 0;
}
int main()
{
    int m,n,zz[100][100],k,t,i,j;
	cin>>m>>n;

	for ( i = 0 ; i < m ; i ++ )
		for ( j = 0 ; j < n ; j ++ )
			cin>>zz[i][j];
	for ( i = 0 ; i < n ; i ++ )
	{	
		k = 0;
		t = i;
		for ( j = 0 ; ; j ++ )
		{
			if ( t >= 0 && k < m )
                cout<<zz[k++][t--]<<endl;
			if ( t < 0 || k >= m )
				break;
		}
	}
	for ( i = 1 ; i < m ; i ++ )
	{
		k = i;
		t = n - 1 ;
		for ( j = 0 ; ; j ++ )
		{
			if ( t >= 0 && k < m )
                cout<<zz[k++][t--]<<endl;
			if ( t < 0 || k >= m )
				break;
		}
	}
}
//??????????
int main()
{
	int row = 0, col = 0, i = 0, j = 0, a[100][100];
	cin >> row >> col;
	for (i = 1; i <= row; i++)
		for (j = 1; j <= col; j++)
		{
			cin >> a[i][j];
		}
		int k = 0;
		for (k = 1; k <= col; k++)
		{
			i = 1, j = k;
			while (1)
			{
				cout << a[i][j] << endl;
				if (i == row || j == 1)
					break;
				i++, j--;
			}
		}
		for (k = 2; k <= row; k++)
		{
			i = k, j = col;
			while (1)
			{
				cout << a[i][j] << endl;
				if (i == row || j == 1)
					break;
				i++, j--;
			}
		}
		return 0;
}
int main()
{
	int a[10000];
	int m,n;
	cin>>m>>n;
	int i;
	for(i=0;i<m*n;i++){
		cin>>a[i];
	}
	int *p;//????
	int temp;//?????
	temp=0;
	int num=m+n-1;
	while(num--){
		p=a+temp;//????
		i=temp;//??????????
		while(i%n!=0&&i/n!=m-1){
			cout<<*p<<endl;
		    p=p+(n-1);
		    i+=(n-1);
		}
		cout<<*p<<endl;
		if(temp<n-1){
			temp++;
		}
		else{
			temp+=n;
		}
	}
	return 0;
}
void main()
{
	int a[100][100],col,row,i,j,k,min;
	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<col;j++)
	for(i=0,k=j;(k>=0&&i<row)==1;)
	{
		printf("%d\n",a[i][k]);
		i++;
		k--;
	}
	for(i=1;i<row;i++)
	for(j=col-1,k=i;(j>=0&&k<row)==1;)
	{
		printf("%d\n",a[k][j]);
		j--;
		k++;
	}	
}
int main()
{
	int row,line,rownow,linenow,n,i,j,a[10000];
	scanf("%d %d",&row,&line);
	for(j=0;j<=row*line-1;j++)
	{
		scanf("%d",&a[j]);
	}
	for(i=0;i<=row+line-1;i++)
	{
		rownow=0;linenow=i-rownow;
		for(;rownow<=row-1&&linenow>=0;rownow++,linenow--)
		{
			if(linenow>=line) continue;
			n=rownow*line+linenow;
			printf("%d\n",a[n]);
		}
	}
	scanf("%d",&j);
	return 0;
}
int main()
{
	int num[100][100];int line,row,i,j,m,n;
	scanf("%d %d",&row,&line);
	for(i=0;i<=row-1;i++)
	{
		for(j=0;j<=line-1;j++)
		{
			scanf("%d",&num[i][j]);
		}
	}
	for(j=0;j<=line-1;j++)
	{
		m=0;n=j;
	do
	{
		printf("%d\n",num[m][n]);
		m++;n--;
	}
	while (n!=-1&&m<row);
	}
	for(i=1;i<=row-1;i++)
	{
		m=i;n=line-1;
		do
		{
			printf("%d\n",num[m][n]);
			m++;n--;
		}
		while (n!=-1&&m<row);
	}
	return 0;
}
int main()
{
	int row , col , i , j;
	int a[100][100];
	cin >> row >> col;
	for (i = 0 ; i <= row - 1 ; i++)
	{
		for (j = 0 ; j <= col - 1 ; j++)
		{
			cin >> a[i][j];
		}
	}
	if (col >= row)
	{
		for (j = 0 ; j<= row - 1 ; j++)
		{
			for (i = 0 ; i <= j ; i++)
			{
				cout << a[i][j-i] << endl;
			}
		}
		for (j = row ; j <= col - 1 ; j++)
		{
			for (i = 0 ; i <= row -1 ; i++)
			{
				cout << a[i][j - i] << endl;
			}
		}
		for (i = 1 ; i <= row - 1 ; i++)
		{
			for (j = col - 1 ; j >= col + i - row ; j--)
			{
				cout << a[i + col - 1 - j][j] << endl;
			}
		}
	}
	else if (col < row)
	{
		for  (j = 0 ; j <= col - 1 ; j ++)
		{
			for (i = 0 ; i <= j ; i++)
			{
				cout << a[i][j-i] << endl;
			}
		}
		for ( i = 1 ; i <= row - col - 1; i++)
		{
			for (j = col - 1 ; j >= 0 ; j--)
			{
				cout << a[ i + col - j - 1][j] << endl;
			}
		}
		for (i =  row - col ; i <= row - 1 ; i++)
		{
			for (j = col - 1 ; j >= col - row + i ; j--)
			{
				cout << a[i + col - 1 - j][j] <<endl;
			}
		}
	}
	return 0;
}
int main(){
    int row,col,v[100][100],i,j,k;
    scanf("%d%d",&row,&col);
    for(int i=0;i<=row-1;i++){
            for(int j=0;j<=col-1;j++){
                    scanf("%d",&v[i][j]);
             }
     }
   
  for(int j=0;j<=col-1;j++)
  {int m=j;
   for(int k=0;k<=row-1&&m>=0;m--&&k++)
    { printf("%d\n",v[k][m]);}
    k=0;
  }
  
  for(int i=1;i<=row-1;i++){int n=i;
  for(int j=col-1 ;n<=row-1&&j>=0;n++&&j--)
  {printf("%d\n",v[n][j]);}}
  
   int z;
   scanf("%d",z); 
 return 0;
 
   
}
int main()
{
	int row,col,sum;
	scanf("%d %d",&row,&col);
	int a[100][100];
	int i,j;
	for(i=0;i<row;i++)
	{
		scanf("%d",&a[i][0]);
		for(j=1;j<col;j++)
		{
			scanf(" %d",&a[i][j]);
		}
	}
	for(sum=0;sum<(row+col-1);sum++)
	{
		for(i=0;i<=sum;i++)
		{
			if(i<row&&(sum-i)<col)
			{
			printf("%d\n",a[i][sum-i]);
			}
		}
	}
	return 0;
}
int main()
{
	int array[100][100], row, col;
	int c, r, sum;
	scanf("%d%d", &row, &col);
	for(r=0;r<row;r++)
	{
		for(c=0;c<col;c++)
		{
			scanf("%d",&array[r][c]);
		}
	}

	for(sum=0;sum<=row+col-2;sum++)
	{
		if(sum<col)
		{
			for(c=sum;c>=0;c--)
			{
				if((sum-c)>=row) break;
				printf("%d\n",array[sum-c][c]);
			}
		}
		else
		{
			for(r=sum-col+1;r<row;r++)
			{
				if((sum-r)<0) break;
				printf("%d\n",array[r][sum-r]);
			}
		}
	}
	return 0;
}
/*
 * ???5.cpp
 * Created on: 2012-12-11
 * Author: ???
 * ??:??????????
 */
int main(){
	int n,m,i,j,k=0;       //????
	cin>>n>>m;      //??n m
	int a[n][m];    //????
	int (*p)[m];    //????
	p=a;        //?P???
    for(i=0;i<n;i++)  //??????
    {
    	for(j=0;j<m;j++)
    	{
          cin>>*(*(p+i)+j);
    	}
    }
    while(k<=m+n-2)    //????
    {
       for(i=0;i<n;i++)     //??????
       {
    	 for(j=0;j<m;j++)
    	 {
            if(k==i+j)  //?????????
            	cout<<*(*(p+i)+j)<<endl; //??
    	 }
       }
       k++;  //?????1
    }
return 0;      //????
}
void main()
{
	int row,col;
	scanf("%d %d",&row,&col);
	int (*p)[100];
	p=(int (*)[100])malloc(row*col*sizeof(int));
	int i,j;
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
			scanf("%d",*(p+i)+j);
	}
		int k;
	for(k=0;k<col;k++)
	{
		for(i=0,j=k;i<row && j>=0 ;i++,j--)
			printf("%d\n",*(*(p+i)+j));
	}
	for(k=1;k<row;k++)
	{
		for(i=k,j=col-1;i<row && j>=0 ;i++,j--)
			printf("%d\n",*(*(p+i)+j));
	}
}
void main()
{ int i,j,k,*p[100],m,n;
  scanf("%d %d",&m,&n);
  for(i=0;i<m;i++)
	  p[i]=(int *)malloc(n*sizeof(int));
  for(i=0;i<m;i++)
	  for(j=0;j<n;j++)
	  scanf("%d",p[i]+j);
  for(j=0;j<n;j++)
  {   k=j;
	  for(i=0;i<m;i++)
      {printf("%d\n",*(p[i]+k--));
	   if(k<0) break;}}
  for(i=1;i<m;i++)
  {   k=i;
	  for(j=n-1;j>=0;j--)
      {printf("%d\n",*(p[k++]+j));
	   if(k==m) break;}}
}
int main()
{
	int row,col,i,j,m;
	int *p;
	p=(int *)malloc(100*sizeof(int));
	scanf("%d %d",&row,&col);
	for (i=0;i<row;i++)
	{
		for (j=0;j<col;j++)
			scanf("%d",p+i*col+j);
	}
	for (j=0;j<col;j++)
	{
		m=j;
		for (i=0;!((m==-1)||(i==row));i++,m--)
			printf("%d\n",*(p+i*col+m));
	}
	for (i=1;i<row;i++)
	{
		m=i;
		for (j=col-1;!((m==row)||(j==-1));m++,j--)
			printf("%d\n",*(p+m*col+j));
	}
	return 0;
}
int main()
{
	int row = 0, col = 0;
	cin>>row>>col;
	int array[100][100] = {0};
	int i , j , n;
	for ( i = 0 ; i < row ; i++)
	{
		for ( j = 0 ; j < col ; j++)
		{
			cin >> array[i][j];
		}
	}
	for ( n = 0 ; n < row + col ; n ++)
	{
		for ( i = 0, j = n-1 ; i < n , j >=0 ; i++ , j--)
		{
			if(i<row && j <col)
			{
				cout<<array[i][j]<<endl;
			}
		}
	}
	return 0;
}
int main()
{
	int row,col;
	scanf("%d%d",&row,&col);
	int i,j;
	int sz[101][101];
	for(i=0;i<row;i++){
		for(j=0;j<col;j++){
			scanf("%d",&sz[i][j]);             //????%d?????????//
		}
	}

	if(row>col){
    	int x;
	    for(j=0;j<col;j++){
		    for(x=0;x<=j;x++){                       //?x++??k++!!!//
			    printf("%d\n",sz[x][j-x]);
			}
		}
		int y;
		for(i=1;i<=row-col;i++){
			for(y=0;y<col;y++){
				printf("%d\n",sz[i+y][col-y-1]);
			}
		}
		int w;
		for(i=row-col+1;i<row;i++){
			for(w=0;w<col-1;w++){				
				printf("%d\n",sz[i+w][col-w-1]);
				if(i+w==row-1){
					break;
				}
			}
		}
	}else{
		int z;
		for(j=0;j<row;j++){
			for(z=0;z<=j;z++){
				printf("%d\n",sz[z][j-z]);
			}
		}
		int n;
		for(j=row;j<col;j++){
			for(n=0;n<row;n++){
				printf("%d\n",sz[n][j-n]);
			}
		}
		int m;
		for(i=1;i<row;i++){
			for(m=0;m<row-1;m++){
				printf("%d\n",sz[i+m][col-m-1]);
				if(i+m==row-1){
					break;
				}
			}
		}
	}

	return 0;
}
/*
 * Pointer1.5Through.cpp
 * ??????????
 *  Created on: 2012-12-18
 *      Author:???
 *      ??????array[0][0]?????????????????????????
 *
 */
int main(){
	int array[101][101];
	int row,col,i,j,k;
	int (*p)[101]=array;//p??array????
	cin>>row>>col;
	for(i=0; i < row;i++)//???
		for(j=0;j<col;j++)//???
	{	cin>>array[i][j];//????
		}
	cout<<*(*(p+0)+0)<<endl;
	for(i=1;i<col;i++)//i??????????,???????????
		for(k=i,j=0;k>=0 && j<row ;k--)//k???,j???
			{
			cout<<*(*(p+j)+k)<<endl;//??????
			if(k-1>=0)j++;//????????????
			}
	for(i=1;i<row;i++)//?????????i????????????
		for(j=i,k=col-1;k>=0 && j<row;j++)//k???,j???
		{
			cout<<*(*(p+j)+k)<<endl;//??????
			if(j+1<row) k--;//????????????
		}
	return 0;

}
int main()
{
	int i,n[100][100],col,row,COL,ROW;
	scanf("%d %d",&ROW,&COL);
	for(row=0;row<ROW;row++){
		for(col=0;col<COL;col++){
			scanf("%d",&n[row][col]);
		}
	}
	for(i=0;i<COL+ROW-1;i++){
		if(i<COL){
			col=i;
			row=0;
			while(col>=0&&row<ROW){
				printf("%d\n",n[row][col]);
				col-=1;
				row+=1;
			}
		}
		else if(i>=COL){
			col=COL-1;
			row=i-COL+1;
			while(col>=0&&row<ROW){
				printf("%d\n",n[row][col]);
				col-=1;
				row+=1;
			}
		}
	}
	return 0;
}
void main()
{
	int m,n,i,j,k,l,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(j=0;j<n;j++)
			for(l=0;(l<m)&&(l<=j);l++)
				printf("%d\n",a[l][j-l]);
    for(i=1;i<m;i++)
		for(k=0;(k<m-i)&&(k<n);k++)
			printf("%d\n",a[i+k][n-k-1]);


}
int main()
{
	int row,col,i,j,k;
	cin>>row>>col;
	int a[100][100];
	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=0;j<row-i&&col-1-j>=0;j++)
			cout<<a[i+j][col-1-j]<<endl;
	}
	return 0;
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
int n[1000][1000];
int i,j;
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
scanf("%d",&n[i][j]);
}
for(int t=0;t<b;t++)
{
for(j=t,i=0;i<a&&j>=0;i++,j--)
printf("%d\n",n[i][j]);
}
for(int p=1;p<a;p++)
{
for(i=p,j=b-1;i<a&&j>=0;i++,j--)
printf("%d\n",n[i][j]);
}
return 0;
}
int main()
{
	int u[100][100],i,j,k,row,col,m,Col;
	scanf("%d%d",&row,&col);
	for(i=0;i<row;i++){
		for(j=0;j<col;j++){
			scanf("%d",&u[i][j]);
		}
	}
	printf("%d\n",u[0][0]);
	for(k=1;k<col;k++){
		for(j=k;j>=0;j--){
			if(k>col-1){
				break;}
			if(k-j>row-1){
				break;
			}
				
			printf("%d\n",u[k-j][j]);
		}
	} 



		for(k=col;k<col+row-2;k++){
		for(j=col-1;j>=0;j--){

	
if(k-j>row-1){
				break;
			}
			printf("%d\n",u[k-j][j]);


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

	return 0;
}
int main()
{
	int row, col;
	int i, j;
	int sum;
	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 (j = 0; ; ) {
		if (j < col - 1) {
			sum = j;
			for (; ; ) {
				if (sum >= 0 && j - sum < row) {
					printf("%d\n",a[j - sum][sum]);
					sum--;
				}
				else {
					break;
				}
			}
			j++;
		}
		else {
			break;
		}
	}
	for (i = 0; ; ) {
		if (i <= row - 1) {
			sum = col - 1 + i;
			for (; ; ) {
				if (sum >= 0 && col - 1 + i - sum < row) {
					if (sum <= col - 1) {
						printf("%d\n",a[col - 1 + i - sum][sum]);
					}
					sum--;
				}
				else {
					break;
				}
			}
			i++;
		}
		else {
			break;
		}
	}
	return 0;
}
void main()
{
	int (*a)[160],i,j,k,m,n,t;
	a=(int (*)[160])malloc(110*sizeof(int));

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

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

}
void main()
{

	int *a,i,j,row,col;
	scanf("%d %d",&row,&col);
	a=(int*)calloc(200,200*sizeof(int));
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
			scanf("%d",a+i*col+j);
	}
	for(j=0;j<col;j++)
	{
		for(i=1;(i<row+1)&&(i<=j+1);i++)
		printf("%d\n",*(a+(i-1)*col+j+1-i));
	}
	for(i=1;i<row;i++)
	{
		for(j=1;(j<=col)&&(j<row+1-i);j++)
		
				printf("%d\n",*(a+(i+j-1)*col+col-j));
	}
}
int main()
{
	int sz[100][100];
	int a,b,row,col,i;
	scanf("%d %d",&a,&b);
	for(row=0;row<a;row++)
	{
		for(col=0;col<b;col++)
		{
			scanf("%d",&sz[row][col]);
		}
	}
	for(i=0;i<b;i++)
	{
		for(col=i;col>=0&&(i-col)<a;col--)
		{
			printf("%d\n",sz[i-col][col]);
		}
	}
	for(i=b;i<a+b;i++)
	{
		for(col=b-1;col>=0&&(i-col)<a;col--)
		{
			printf("%d\n",sz[i-col][col]);
		}
	}
	return 0;
}
/*
 * point1005.cpp
 *
 *  Created on: 2013-12-4
 *      Author: weng
 */


int main()
{
	int n , m , i , j ;
	cin >> n >> m ;
	int a[n][m] ;
	for( i = 0 ; i < n ; i ++ )
		for( j = 0 ; j < m ; j ++ )
			cin >> a[i][j] ;
	int * p = NULL ;
	for( i = 0 , j = 0 ; i < n ; i ++ )
	{
		for( ; j < m ; j ++ )
		{
			p = &a[0][0] + 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 ;
}
main()
{
      int row,col,time=0,n,i,j;
      int array[100][100];
      scanf("%d %d",&row,&col);
      for(i=0;i<row;i++)
      for(j=0;j<col;j++)
      scanf("%d",&array[i][j]);
      for(n=0;n<row+col;n++)
      {
                            if(col<row)
                            {
                                       if(n<col)
                                       {
                                                for(i=0;i<=n;i++)
                                                printf("%d\n",array[i][n-i]);
                                       }
                                       else if(n<row)
                                       {
                                            for(i=col-1;i>=0;i--)
                                            printf("%d\n",array[n-i][i]);
                                       }
                                       else 
                                       {
                                            for(i=col-1;i>n-row;i--)
                                            printf("%d\n",array[n-i][i]);
                                       }
                            }
                            else if(row<col)
                            {
                                       if(n<row)
                                       {
                                                for(i=0;i<=n;i++)
                                                printf("%d\n",array[i][n-i]);
                                       }
                                       else if(n<col)
                                       {
                                            for(i=0;i<=row-1;i++)
                                            printf("%d\n",array[i][n-i]);
                                       }
                                       else 
                                       {
                                            for(i=col-1;i>n-row;i--)
                                            printf("%d\n",array[n-i][i]);
                                       }
                            }
                            else if(row==col)
                            {
                                       if(n<row)
                                       {
                                                for(i=0;i<=n;i++)
                                                printf("%d\n",array[i][n-i]);
                                       }
                                       
                                       else 
                                       {
                                            for(i=row-1;i>n-col;i--)
                                            printf("%d\n",array[n-i][i]);
                                       }
                            }
      }
}
int main()
{
	int n,m,a[100][100],i,j,num=1,k,l,t;
	cin>>n>>m;
	for(i=0;i<n;i++)
	{
		for(j=0;j<m;j++)
		{
			cin>>a[i][j];
		}
	}
	if(m==1)
	{
		for(i=0;i<n;i++)
		{
			for(j=0;j<m;j++)
			{
				cout<<a[i][j]<<endl;
			}
		}
		return 0;
	}
	k=0;
	l=0;
	while(1)
	{
		if(k<n&&l<m)
		cout<<a[k][l]<<endl;
		if(l!=0)
		{
			k++;l--;continue;
		}
		if(l==0)
		{
			t=k;
			k=0;
			l=t+1;
		}
		while(k>=n||l>=m)
		{
			k++;
			l--;
			if(l==0)
			{
				t=k;
				k=0;
				l=t+1;
			}
			if(l+k==m+n)
			{
				return 0;
			}
		}
	}
}
int main()
{
	int a[100][100],i,j,k,sum,row,col;
	scanf("%d %d",&row,&col);
	for(i=1;i<=row;i++)
	{
		for(j=1;j<=col;j++)
		{
			scanf("%d",&a[i-1][j-1]);
		}
	}
	for(sum=0;sum<=col-1;sum++)
	{
		for(i=0;i<=row-1;i++)
		{
			if(sum-i<0)
				break;
			printf("%d\n",a[i][sum-i]);
		}
	}
	for(sum=col;sum<=col+row-2;sum++)
	{
		for(i=sum-col+1;i<=row-1;i++)
		{
			if(sum-i<0)break;
			printf("%d\n",a[i][sum-i]);
		}
	}

	return 0;
}
int main()
{
	int row=0,col=0,num[110][110]={0},(*p)[110],i,j,a=1,b=col-1,c,d;
	p=num;
	cin>>row>>col;
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			cin>>*(*(p+i)+j);
		}
	}
	for(i=0;i<col;i++)
	{
		a=1;
		c=i;
		cout<<*(*(p)+i)<<endl;
		while(i-1>=0&&a<row)
		{
			cout<<*(*(p+a)+i-1)<<endl;
			a++;
			i--;
		}
		i=c;
	}
	for(j=1;j<row;j++)
	{
		b=col-1;
		d=j;
		cout<<*(*(p+j)+col-1)<<endl;
		while(j+1<row&&b-1>=0)
		{
			cout<<*(*(p+j+1)+b-1)<<endl;
			j++;
			b--;
		}
		j=d;
	}
		return 0;
}
int main()
{
    int row, col, array[100][100], 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; i++)
    {
        for(j = 0; j <= i; j++)
        {
            if(j < row) cout << array[j][i - j] << endl;
        }
    }
            
    for(j = 1; j < row; j++)
    {
        for(i = col - 1; i >= 0; i--)
        {
            if(col - 1 + j - i < row)
            {
                cout << array[col - 1 - i + j][i] << endl;
            }
        }
    }

    return 0;
}
int main()
{
	int r,c,a[100][100]={0};
	int i,j,rs,re,cs,ce,s;

	scanf("%d%d",&r,&c);

	for(i=0;i<r;i++)
	{
		for(j=0;j<c;j++)
			scanf("%d",&a[i][j]);
	}

	for(rs=0,cs=0,re=0,ce=0;(re+ce)<(r+c);)
	{
		for(i=rs,j=cs;i<=re&&j>=ce;i++,j--)
		{
			printf("%d\n",a[i][j]);

		}
		if(cs<(c-1))
			cs++;
		else
			rs++;
		if(re<(r-1))
			re++;
		else
			ce++;
	}
	return 0;
}
int main()
{
	int row,col,i,j,k;
	scanf("%d%d",&row,&col);
	int a[100][100];
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	for(j=0;j<col;j++)
	{
		for(i=0;i<j+1;i++)
		{
			if(i<row)
			{
				printf("%d\n",a[i][j-i]);
			}
		
		}
	}
	for(k=col;k<row+col-1;k++)
	{
		for(j=col-1;j>=0;j--)
		{
			if(k-j<row)
			{
				printf("%d\n",a[k-j][j]);
			}
		}
	}
	return 0;

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