semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
/*
 * ??????????.cpp
 *
 *  Created on: 2012-12-28
 *      Author: i
 */
int a[100][100]={0},n=0,m=0,i=0,j=0;
void bianli(int hang,int lie){
	if(lie==0||hang==n-1)cout<<a[hang][lie]<<endl;
	else{
		cout<<a[hang][lie]<<endl;
		bianli(hang+1,lie-1);
	}
}
int main(){
	cin>>n>>m;
	for(i=0;i<n;i++){
		for(j=0;j<m;j++){
			cin>>a[i][j];
		}
	}
	for(i=0;i<m;i++){
		bianli(0,i);
	}
	for(i=1;i<n;i++){
		bianli(i,m-1);
	}
	return 0;
}
int main()
{
	int row,col,i,j,k,a;
	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]);
	}
	k=row+col;
	for(a=0;a<k-1;a++)
	{
		for(i=0;i<=a;i++)
			if(i<row&&(a-i)<col)
				printf("%d\n",array[i][a-i]);
			else if(i>=row) i++;
	}
	return 0;
}
int main()
{
	int row,col;
	cin>>row>>col;
	int a[100][100];
	int (*aa)[100]=a;
	for(int i=0;i<row;i++)
	{
		for(int j=0;j<col;j++)
		{
			cin>>a[i][j];
		}
	}

	for(int i=0;i<col;i++)
	{
		int r=0;
		int c=i;
		while(r<=row-1&&c>=0)
		{
			cout<<*((*(aa+r))+c)<<endl;
			r=r+1;
			c=c-1;
		}
	}
	for(int i=1;i<row;i++)
	{
		int r=i;
		int c=col-1;
		while(r<=row-1&&c>=0)
		{
			cout<<*((*(aa+r))+c)<<endl;
			r=r+1;
			c=c-1;
		}
	}

	return 0;
}
void main()
{
	void paixu(int a[][100],int x,int y);
	int i,j,a[100][100],col,row;
	scanf("%d%d",&row,&col);
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
			scanf("%d",&a[i][j]);
	paixu(a,row,col);
}

void paixu(int a[][100],int x,int y)
{
	int sum=0,i,j,k;
	k=x+y;
	for(sum=0;sum<=k;sum++){
		for(i=0;i<=sum;i++){
			j=sum-i;
			if(i<x&&j<y)
				printf("\n%d",a[i][j]);
		}
	}
}
/*
 * ????array.cpp
 * ????: 2012-12-11
 * ??: winneshaw
 * ???????row?col??????array
 * ???array[0][0]?????????????????????????
 */


int main(){
	int row,col;
	cin>>row>>col;
	int array[row][col];
	int j,i,k;
	int*p=NULL;
	for(j=0;j<row;j++)
	{
	p=array[j];
	for(i=0;i<col;i++)
		cin>>*(p+i);
	}
	p=array[0];
	for(k=0;k<=row+col-2;k++)
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
     if(i+j==k)
			cout<<*(p+i*col+j)<<endl;
	return 0;
}
int main()
{
    int n,m,a[100][100],row,col,i;
    scanf("%d %d",&n,&m);
    for(row=0;row<n;row++)
    {
        for(col=0;col<m;col++)
        {
            scanf("%d",&a[row][col]);
        }
    }
    if(n<m)
    {
       for(i=0;i<n;i++)
       {
           for(row=0;row<=i;row++)
               printf("%d\n",a[row][i-row]);
       }
       for(i=n;i<m;i++)
       {
           for(row=0;row<n;row++)
               printf("%d\n",a[row][i-row]);
       }
       for(i=m;i<n+m-1;i++)
	   {
		   for(col=m-1;col>=i-n+1;col--)
           printf("%d\n",a[i-col][col]);
	   }
    }
    if(n>=m)
    {
        for(i=0;i<m;i++)
        {
            for(row=0;row<=i;row++)
                printf("%d\n",a[row][i-row]);
        }
        for(i=m;i<n;i++)
        {
            for(col=m-1;col>=0;col--)
				printf("%d\n",a[i-col][col]);
        }
		for(i=n;i<n+m-1;i++)
		{
			for(col=m-1;col>=i-n+1;col--)
			printf("%d\n",a[i-col][col]);
		}
    }
	return 0;
}
int main()
{
	int a[100][100],m,n,i,j,k;
	cin>>m>>n;
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
			cin>>a[i][j];
		}
	}
	for(k=0;k<m+n-1;k++)
	{
		for(i=n-1;i>=0;i--)
		{
			if(k-i>=0&&k-i<m)
			{
				cout<<a[k-i][i]<<endl;
			}
		}
	}
	return 0;
}
main()
{
      int (*p)[100],i,j,k,m,n,flag=0;
      p=(int(*)[100])calloc(100,100*sizeof(int));
      scanf("%d %d",&m,&n);
      for(i=0;i<m;i++)
       for(j=0;j<n;j++)
       scanf("%d",*(p+i)+j);
      for(i=0;i<n;i++)
      { 
        for(k=i;k>=0;k--)
        {
        if(i-k<=m-1) {printf("%d\n",*(*(p+i-k)+k));}
        flag=i;
        }
      }
      if(flag==n-1)
      {
       for(j=1;j<m;j++)
       {
         for(k=j;k<m;k++)
         {
           if((n+j-k-1)<=(n-1)&&(n+j-k-1)>=0)             { printf("%d\n",*(*(p+k)+n+j-k-1));}
         }
         } 
         }
    
}
int main() {
	int array[120][120];
	int row, col, i, j,sum;
	cin >> row >> col;
	for (i = 0; i < row; i++)
		for (j = 0; j < col; j++)
			cin >> array[i][j];
	i = 0;
	j = 0;
	while (i < row && j < col) {
		cout << array[i][j] << endl;
		sum = i + j;
		i++;
		j--;
		if (i == row || j == -1) {
			sum = sum + 1;
			if (i = row) {
				i = 0;
				j = sum - i;
				if (j >= col) {
					j = col - 1;
					i = sum - j;
				}
			} else {
				j = col - 1;
				i = sum - j;
				if (i < 0) {
					i = 0;
					j = sum - i;
				}
			}
		}
	}
	return 0;
}
void main()
{
	int r,c,*p[100],i,j,v;
	for(i=0;i<100;i++)
		p[i]=(int *)malloc(100*sizeof(int));
    scanf("%d %d\n",&r,&c);
	for(i=0;i<r;i++)
		for(j=0;j<c;j++)
			scanf("%d",(p[i]+j));
	for(v=0;v<=r+c-2;v++)
	{
		for(i=0;i<=v;i++)
		{
			if(i<r)
			{
				j=v-i;
				if(j<c) printf("%d\n",*(p[i]+j));
			}
		}
	}
}
int main()
{
	int i,j,k,row,col;
	int sz[100][100];
	scanf("%d %d",&row,&col);
	for(i=0;i<row;i++)
	{
		scanf("\n%d",&sz[i][0]);
		for(j=1;j<col;j++)
		{
	    	scanf("%d ",&sz[i][j]);
		}
	}
	if(col>=row)
	{
       for(i=0;i<row;i++)
	   {
		   for(j=0,k=i;j<=i;j++,k--)
		   {
			   printf("%d\n",sz[j][k]);
		   }
	   }
	   for(i=row;i<col;i++)
	   {
		   for(j=0,k=i;j<row;j++,k--)
		   {
			   printf("%d\n",sz[j][k]);
		   }
	   }
	   for(i=1;i<row;i++)
	   {
		   for(j=i,k=col-1;j<row;j++,k--)
		   {
			   printf("%d\n",sz[j][k]);
		   }
	   }
	}
    if(col<row)
	{
       for(i=0;i<col;i++)
	   {
		   for(j=0,k=i;j<=i;j++,k--)
		   {
			   printf("%d\n",sz[j][k]);
		   }
	   }
	   for(i=1;i<=row-col;i++)
	   {
		   for(j=i,k=col-1;k>=0;j++,k--)
		   {
			   printf("%d\n",sz[j][k]);
		   }
	   }
	   for(i=row-col+1;i<row;i++)
	   {
		   for(j=i,k=col-1;j<row;j++,k--)
		   {
			   printf("%d\n",sz[j][k]);
		   }
	   }
	}
	return 0;
}
int main()
{
   int a,b,i,j,q;
   cin>>a>>b;
   int m[a+1][b+1];     //??????? 
   for (i=1;i<=a;i++)
       for (j=1;j<=b;j++)
             cin>>m[i][j];    //??????????? 
   for (q=2;q<=a+b;q++)         //???????,??????????,?q 
     for (i=1,j=q-i;j>0;i++,j=q-i)    //????????????????? 
      {  if (j<=b&&i<=a)         //??????? 
           cout<<m[i][j]<<endl;
      }
   return 0;   
}
/*
 * Filename:homework_duijiaoxian.cpp
 * Author: Wu Yiming
 *  Created on: 2011-10-31
 * Function: print it along duijiaoxian
 */



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

}
void main()
{
	int**a[100][100],i,j,col,row,k,xie;
	scanf("%d %d",&row,&col);
	for(i=0;i<100;i++)
	{
		for(j=0;j<100;j++)
		{
			a[i][j]=(int**)malloc(10000);
		}
	}
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			scanf("%d",a[i][j]);
		}
	}
	
	xie=col+row-1;
	for(i=0;i<=xie+1;i++)
	{
		for(j=0;j<row;j++)
		{
			for(k=0;k<col;k++)
			{
				if(j+k!=i){continue;}
				else {printf("%d\n",*a[j][k]);}
			}
		}
	}
}
void main()
{
	int i,j,n,row,col,*p[100];
	for(i=0;i<100;i++)
		*(p+i)=(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)+j);
	for(n=0;n<=row+col-2;n++)
		for(i=0;i<=n;i++)
		{
			j=n-i;
			if(i<row&&j<col)
				printf("%d\n",*(*(p+i)+j));
		}

}
/*
 * bianlishuzu.cpp
 *
 *  Created on: 2013-12-6
 *      Author: ???
 */
int main()
{
	int row=0,col=0,i=0,j=0;
	int a[100][100];
	cin>>row>>col;
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
			cin>>a[i][j];
	int sum=0;
	for(sum=0;sum<row+col-1;sum++)
	{
		if(sum<col)
		{
			for(i=0,j=sum;i<row&&i<=sum;i++,j--)
				cout<<a[i][j]<<endl;
		}
		else
		{
			for(j=col-1,i=sum-col+1;i<row&&j>=0;j--,i++)
				cout<<a[i][j]<<endl;
		}
	}
	return 0;
}
int main() {
	int row, col;
	cin >> row >> col;
	int num[110][110] = {0};
	for(int i = 0 ; i < row; i++)
		for(int j = 0; j < col; j++) {
			cin >> *(*(num + i) + j);  // input part
		}
	for(int i = 0; i < col; i++) {  // begin from the first element of each line
		for(int j  = 0; j <= i; j++) {   // this part have j elements
			if(j < row) cout << *(*(num + j) + i - j) << endl;
			else break;
		}
	}
	for(int i = 1; i < row; i++)  {  // begin from the last element of each row
		for(int j = 0; j < row - i; j++) {
			if(j < col) cout << *(*(num + i + j) + col - j - 1) << endl;
		}
	}
	
	return 0;
}
int main()
{
    int i,j,row,col,m,n;
	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]);
		if(row<=col){
	for(m=0;m<row;m++)
		for(n=0;n<=m;n++)
			printf("%d\n",a[n][m-n]);
	for(m=row;m<col;m++)
		for(n=0;n<row;n++)
			printf("%d\n",a[n][m-n]);
	for(m=col;m<(col+row);m++)
		for(n=(m-col+1);n<row;n++)
			printf("%d\n",a[n][m-n]);
		}
		else{
	for(m=0;m<col;m++)
		for(n=0;n<=m;n++)
			printf("%d\n",a[n][m-n]);
	for(m=col;m<row;m++)
		for(n=col-1;n>=0;n--)
			printf("%d\n",a[m-n][n]);
	for(m=row;m<(col+row);m++)
		for(n=col-1;n>=(m-row+1);n--)
			printf("%d\n",a[m-n][n]);
		}
		return 0;
}
/*
 * ??????????.cpp
 *  Created on: 2012-12-14
 *  Author: ???
 */
int main(){
	int row,col,a[150][150];
	cin>>row>>col;//??????
	for(int i=0;i<row;i++){//??
		for(int j=0;j<col;j++){
			cin>>*(*(a+i)+j);
		}
	}
	for(int sum=0;sum<=row+col-2;sum++){//sum???????????????
		if(sum<col){//??????
			for(int i=0;i<row&&i<=sum;i++){//????0?????sum???????
				cout<<*(*(a+i)+(sum-i))<<endl;
			}
		}else{//???????
			for(int i=sum-col+1;sum-i>=0&&i<row;i++){//????sum-col+1??????col-1???????
				cout<<*(*(a+i)+(sum-i))<<endl;
			}
		}
	}
	return 0;
}
/*??
 ????row?col??????array????array[0][0]?????????????????????????
 ????
 ????????????????row?col?
 ???row??????col???????????????
 ??????row?col??0<row<100, 0<col<100?
 ????
 ????????????????????
 ????
 3 4
 1 2  4  7
 3 5  8 10
 6 9 11 12
 ????
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 */
int main()
{
    int row=0,col=0;
    cin>>row>>col;
    int a[100][100];
    memset(a,'0',sizeof(a));
    for(int i=0;i<row;i++)
    {
        for(int j=0;j<col;j++)
        {
            cin>>a[i][j];
        }
    }
    int (*p)[100]=a;
    for(int i=0;i<row+col-1;i++)
    {
        if(i<col)
        {
            for(int j=0;j<=row;j++)
            {
                if(i-j<col&&j<row&&j>=0&&i-j>=0)
                {cout<<*(*(p+j)+i-j)<<endl;}
            }
        }
        else
        {
            for(int j=1;j<row;j++)
            {
                if(i-j<col&&j<row&&i-j>=0&&j>=0)
                {cout<<*(*(p+j)+i-j)<<endl;}
            }
        }
    }
    return 0;
}
//2013.1.4
//zwb

int main ()
{
	int row, col, i, j, cnt = 1;
	int a[201][201] = {0}, b[10001] = {0};
	cin >> row >> col;
	for(i = 1; i <= 200; i++)
	{
		for(j = 1; j <= 200; j++)
			a[i][j] = -1;
	}
	for(i = 1; i <= row; i++)
	{
		for(j = 1; j <= col; j++)
		{
			cin >> a[i][j];
		}
	}

	i = 1, j = 1;
	while(cnt <= row * col)
	{
		if(a[i][j] != -1)
			b[cnt++] = a[i][j];
		if(j == 1 || i == row)
		{
			j = i + j;
			i = 1;
		}
		else
		{
			i = i + 1;
			j = j - 1;
		}
	}
	for(i = 1; i <= row * col; i++)
	{
		cout << b[i] << endl;
	}
	return 0;
}
int main()
{
	int i,k,n,l,s[100][100],m,a;
	scanf("%d%d",&n,&l);
	for(i=0;i<n;i++){
		for(k=0;k<l;k++){
			scanf("%d",&s[i][k]);
		}
	}
	if(n>=l){
		for(m=0;m<l;m++){
		    for(i=0,k=m;i<n,k>=0;i++,k--){
			    printf("%d\n",s[i][k]);
			}
		}
		for(m=l;m<n;m++){
		    for(i=m+1-l;i<=m;i++){
				k=m-i;
			    printf("%d\n",s[i][k]);
			}
		}
        for(m=n;m<n+l-1;m++){
		    for(i=m+1-l;i<n;i++){
				k=m-i;
			    printf("%d\n",s[i][k]);
			}
		}
	}
	else{
		for(m=0;m<n;m++){
		    for(i=0,k=m;i<n,k>=0;i++,k--){
			    printf("%d\n",s[i][k]);
			}
		}
		for(m=n;m<l;m++){
			for(i=0,k=m;i<n,k>m-n;i++,k--){
				printf("%d\n",s[i][k]);
			}
		}
	    for(a=1;a<n;a++){
		    for(i=a,k=l-1;i<n,k>=l-n+a;i++,k--){
			    printf("%d\n",s[i][k]);
			}
		}
	}
	return 0;
}
int main()
{int a[100][100],h,l,i,j; //???????
cin>>h>>l; //???????
for(i=0;i<=h-1;i++)
{  for(j=0;j<=l-1;j++) cin>>a[i][j]; //???????????
}
for(i=0;i<=l-1;i++)
{  for(j=0;j<=(i>h-1?h-1:i);j++) cout<<a[j][i-j]<<endl; //????????

}
for(i=l;i<=l+h-2;i++)
{   for(j=i-l+1;j<=(i>h-1?h-1:i);j++)  cout<<a[j][i-j]<<endl; //??????

}
return 0;
}
int main()
{
	int n,m,i,j,k;
	int yao[300][300];
	scanf("%d%d",&n,&m);
	for(i=0;i<n;i++)
	{
        for(j=0;j<m;j++)
		{
           scanf("%d",&yao[i][j]);
		}
	}
  for(i=n;i<300;i++)
	{
        for(j=0;j<300;j++)
		{
           yao[i][j]=00;
		}
	}
  
	for(k=0;k<=n+m-2;k++)
	{   
		
		

		  for(i=0;i<=k;i++)
		  {
			 if(yao[i][k-i]!=00)
			 {
			   printf("%d\n",yao[i][k-i]);
			 }
		  }
	
	
		


	}
	return 0;
}
void main()
{
	int row,col,i,j,k,(*a)[100];
	a=(int (*)[100])calloc(100,100*sizeof(int));     /*???pass?????????????????pass???*/
	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<col;k++)
	{
		for(i=0;k-i>=0&&i<=row-1;i++)
			printf("%d\n",*(*(a+i)+k-i));
	}
	for(k=1;k<row;k++)
	{
		for(i=0;k+i<=row-1&&col-1-i>=0;i++)
			printf("%d\n",*(*(a+k+i)+col-1-i));
	}
}
void main()
{
	int *p,row,col,*q,i,k;
	scanf("%d%d",&row,&col);
	p=(int *)malloc(row*col*sizeof(int));
	for(q=p;q<p+row*col;q++)
		scanf("%d",q);
	for(k=0;k<row+col-1;k++)
	{
		if(k<col)
		{
			for(i=0;i<=k&&i<row;i++)
				printf("%d\n",*(p+i*col+k-i));
		}
		else
		{
			for(i=k-col+1;i<row&&i<=k;i++)
				printf("%d\n",*(p+i*col+k-i));
		}
	}
}
int main()
{
	int row, col, i, j, array[110][110]={0};
	scanf("%d%d", &row, &col);
	getchar();
	for(i=0;i<=row-1;i++)
	{
		for(j=0;j<=col-1;j++)
		{
			scanf("%d", &array[i][j]);
		}
	}
	for(i=0;i<=col+row-2;i++)
	{
		for(j=0;j<=i;j++)
		{
			if(j>=row || (i-j)>=col) continue;
			printf("%d\n", array[j][i-j]);
		}
	}
	return 0;
}
int main()
{
    int a[100][100], p, q, row, col;
    cin >> row >> col;
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            cin >> a[i][j];
        }
    }
    p = 0;
    q = 0;
    for (int i = 0; i < row * col; i++)
    {
        cout << a[p][q] << endl;
        if (q == 0 || p == row - 1)
        {
            q = p + q + 1;
            p = 0;
            while (q >= col)
            {
                p++;
                q--;
            }
        }
        else
        {
            p++;
            q--;
        }
    }
    return 0;
}
int map[110][110];
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			cin>>map[i][j];
			}
		}
	for(int i=0;i<n+m-1;i++){
		for(int j=i;j>=0;j--){
			int k = i-j;
			if(k>=0&&k<n&&j<m){
				cout<<map[k][j]<<endl;
				}
			}
		}
	return 0;
	}
int main()
{
	int i,j,k,row,col,a[100][100];
	cin>>row>>col;
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			cin>>a[i][j];
		}
	}
	for(k=0;k<col;k++)
		for(i=0,j=k;j>=0&&i<row;i++,j--)
			cout<<a[i][j]<<endl;
	for(k=1;k<row;k++)
		for(i=k,j=col-1;i<row&&j>=0;i++,j--)
			cout<<a[i][j]<<endl;
	return 0;
}
int main()
{
	int a[100][100];
	int 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]);
	for(i=0;i<col;i++)   /*????????????*/
	{	
		for(j=i,k=0;j>=0,k<=i;j--,k++)  
		{
			if(k>(row-1)||j>(col-1)||k<0||j<0)    /*??????*/
				continue;
			printf("%d\n",a[k][j]);
		}
	}
	for(i=1;i<=row-1;i++)    /*????????????*/
		for(j=col-1,k=i;j>=0,k<=row-1;j--,k++)
		{
			if(k>(row-1)||j>(col-1)||k<0||j<0)  /*??????*/
				continue;
			printf("%d\n",a[k][j]);
		}
	return 0;
}
// ??????.cpp : Defines the entry point for the console application.
//


int main(int argc, char* argv[]){
	int m,n,row,col,sz[100][100],k;
	scanf("%d%d",&row,&col);
	for(m=0;m<row;m++){
		for(n=0;n<col;n++){
			scanf("%d",&sz[m][n]);
		}	
	}
	for(k=0;k<col;k++){
		m=0;
		n=k;
		while(n>=0&&m!=row){
			printf("%d\n",sz[m][n]);
			m++;
			n--;
		}
	}
	for(k=1;k<row;k++){
		m=k;
		n=col-1;
		while(n>=0&&m!=row){
			printf("%d\n",sz[m][n]);
			m++;
			n--;
		}
	}
	return 0;
}
int main()
{
	int row , col ;
	cin >> row >> col ;
	int a[row][col] ;
	for( int i = 0 ; i < row ; i ++ )
		for( int j = 0 ; j < col ; j ++ )
			cin >> a[i][j] ;
	int i = 0 , j = 0 ;
	for( ; i < row ; i ++ )
	{
		for( ; j < col ; j ++ )
		{
			for( int m = i , n = j ;  m < row && n > -1  ; m ++ , n -- )
				cout << a[m][n] << "\n" ;
		}
		j -- ;
	}
	return 0 ;
}
int g[100][100];


int main()
{
	int r,c;
	scanf("%d%d",&r,&c);

	for(int i=0;i<r;i++)
		for(int j=0;j<c;j++)
			scanf("%d",g[i]+j);

	for(int j=0;j<r+c-1;j++)
	{
		for(int i=0;i<r;i++)
		{
			if(j-i>=0 && j-i<c)
				printf("%d\n",g[i][j-i]);
		}
	}

	return 0;
}
int main()
{
	int m, n, i = 1, j = 1;
	int tempi=1, tempj = 1, a[100][100]={0};
	cin>>m>>n;
	for(int s=1;s<=m;s++)
		for(int t=1;t<=n;t++)
			cin>>a[s][t];
	while(tempi != m || tempj != n)
	{
		do
		{
			cout<<a[i][j]<<endl;
		    i++;
			j--;
		} while(j != 0 && i != m + 1 );
	    if(tempj != n)
		{
			tempj++;
			i = tempi;
			j=tempj;
		}
		else
		{
			tempi++;
			i=tempi;
			j=tempj;
		}
	}
	cout<<a[m][n];
	return 0;
}
/*
 * youshang-zuoxia-bianli.cpp
 *
 *  Created on: 2013-12-6
 *      Author: Administrator
 */
int main()
{
	int x,y;
	int row,col;
	cin>>row>>col;
	int a[row][col];
	for(int i=0;i<row;i++)
	{
		for(int j=0;j<col;j++)
		{
			cin>>a[i][j];
		}
	}
	int n;
	n=row+col-2;
	for(int i=0;i<col;i++)
	{
		for(x=0,y=i-x; x>=0 && y>=0 && x<row && y<col ; x++,y--)
		{

			cout<<a[x][y]<<endl;
		}
	}
	for(int j=col;j<=n;j++)
	{
		for(y=col-1,x=j-y; x>=0 && y>=0 && x<row && y<col ; y--,x++)
		{
			cout<<a[x][y]<<endl;
		}
	}
	return 0;
}
int main()
{
    int row,col;
    cin>>row>>col;
    int data[row*col];
    for (int i=0;i<row*col;++i)
        cin>>data[i];
    int *head=data;
    for (int i=0;i<col;++i)
    {
        int *p=head;
        for (int j=0;j<=min(i,row-1);++j)
        {
            cout<<*p<<endl;
            p+=col-1;
            }
        ++head;
        }
    --head;
    for (int i=1;i<row;++i)
    {
        head+=col;
        int *p=head;
        for (int j=0;j<=min(col-1,row-i-1);++j)
        {
              cout<<*p<<endl;
              p+=col-1;
              }
        }
    return 0;
    }
int main()
{
	int a[100][100]={0};
	int hang,lie;
	cin>>hang>>lie;
	int i,j;
	for(i=0;i<hang;i++)
	{
		for(j=0;j<lie;j++)
			cin>>a[i][j];
	}
	int t;
	for(t=0;t<=hang+lie-2;t++)
	{
		for(i=0;i<hang;i++)
		{
			for(j=0;j<lie;j++)
			{
				if(i+j==t)
					cout<<a[i][j]<<endl;
			}
		}
	}
	return 0;
}
int main()
{
	int n,i,j,l,max,start,row,col;
	int a[200][200];
	scanf("%d%d",&row,&col);
	for (i=1;i<=row;i++)
		for (j=1;j<=col;j++)
			scanf("%d",&a[i][j]);

	i=1;j=1;
	do
	{
		printf("%d\n",a[i][j]);
		i++;j--;
		if (j==0) 
			if (i+j<col+1) {j=i;i=1;} else {i=i+j+1-col;j=col;}
		if (i>row) 
			if (i+j<col+1) {j=i+j;i=1;} else {i=row+2+j-col;j=col;}
			
	}
	while (i<=row);
	return 0;
}
int main(){
	int h,l,i,j,sz[100][100];
	scanf("%d%d",&h,&l);
	for(i=0;i<h;i++){
		for(j=0;j<l;j++){
			scanf("%d",&sz[i][j]);
		}
	}
	printf("%d",sz[0][0]);
	int k,n;
	if(h>l){
		for(k=1;k<=h+l-2;k++){
			if(k<=l-1){
				for(i=0;i<=k;i++){
					printf("\n%d",sz[i][k-i]);
				}
			}
			else if(k>l-1&&k<=h-1){
				for(i=k-l+1;i<=k;i++){
					printf("\n%d",sz[i][k-i]);
				}
			}
			else{
				for(i=k-l+1;i<=h-1;i++){
					printf("\n%d",sz[i][k-i]);
				}
			}
		}
	}
	else if(h<l){
		for(k=1;k<=h+l-2;k++){
			if(k<=h-1){
				for(i=0;i<=k;i++){
					printf("\n%d",sz[i][k-i]);
				}
			}
			else if(k>h-1&&k<=l-1){
				for(i=0;i<=h-1;i++){
					printf("\n%d",sz[i][k-i]);
				}
			}			
			else{
				for(i=k-l+1;i<=h-1;i++){
					printf("\n%d",sz[i][k-i]);
				}
			}
		}
	}
	else{
		for(k=1;k<=h+l-2;k++){
			if(k<=h-1){
				for(i=0;i<=k;i++){
					printf("\n%d",sz[i][k-i]);
				}
			}
			else{
				for(i=k-h+1;i<=h-1;i++){
					printf("\n%d",sz[i][k-i]);
				}
			}
		}
	}
	return 0;
}
void main()
{
	int row,col,array[100][100],i,j,k;
	scanf("%d %d",&row,&col);
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			scanf("%d",&array[i][j]);
		}
	}
	if((i==1)&&(j==1))
		printf("%d\n",array[0][0]);
	else
	{
		for(j=0;j<col;j++)
		{
			k=j;
			for(i=0;i<row;i++)
			{
				if(k<0)
					break;
				printf("%d\n",array[i][k]);
				k--;
			}
		}
		for(i=1;i<row;i++)
		{
			k=col-1;
			for(j=i;j<row;j++)
			{
				if(k<0)
					break;
				printf("%d\n",array[j][k]);
				k--;
			}
		}
	}
}
/*
 * fuxi1.cpp
 *??????
 *  Created on: 2011-11-4
 *      Author: APPLE
 */
int main()                                         //??????i????j???
{
	int i,j,a,b,k,p;                               //????
	int array[102][102];                           //??????
	cin>>a>>b;
	for(i=0;i<a;i++)                                  //????????????
		for(j=0;j<b;j++)
			cin>>array[i][j];


		if(a>=b)                                     //?????????????????????
		{for(j=0;j<b;j++)
			for(k=j,i=0;k>=0;i++,k--)
    cout<<array[i][k]<<endl;
		for(i=1;i<=a-b;i++)
			for(p=i,j=b-1;j>=0;p++,j--)
				cout<<array[p][j]<<endl;
		for(i=a-b+1;i<a;i++)
			for(p=i,j=b-1;p<a;p++,j--)
						cout<<array[p][j]<<endl; }
		else                                             //??????????????????
		{for(j=0;j<a;j++)
         for(k=j,i=0;k>=0;i++,k--)
		    cout<<array[i][k]<<endl;
	     for(j=a;j<b;j++)
	    	 for(k=j,i=0;i<a;i++,k--)
	    	cout<<array[i][k]<<endl;
      for(i=1;i<a;i++)
		for(j=b-1,p=i;p<a;p++,j--)
			cout<<array[p][j]<<endl;}
	return 0;                                          //?????


}
int main()
{
    int array[105][105],row,col,(*p)[105];
    p = array;
    cin>>row>>col;
    for(int i=0;i<row;i++)
    for(int j=0;j<col;j++)
    {
        cin>>*(*(p+i)+j);       
    }
    int i,j,m=0;
    while(1)
    {
        if(m<col)
        {
            for(i=0,j=m;j>=0&&i<=row-1;i++,j--)
            {
                 cout<<*(*(p+i)+j)<<endl;
            }         
        }        
        else
        {
            for(i=m-col+1,j=col-1;i<=row-1&&j>=0;i++,j--)
            {
                 cout<<*(*(p+i)+j)<<endl;
            }
        }
        m++;
        if(m==row+col)break;
    }

    return 0;
}
void main()
{
	int *p[200][200];
	int m,n,i,j,x;
	scanf("%d %d",&m,&n);
	for (i=0;i<m;i++)
      for(j=0;j<n;j++)
        scanf("%d",*(p+i)+j);

	i=0;
	j=0;
	for(x=0;x<=m+n-2;x++)
	{
		for(i=0;i<m;i++)
			for(j=0;j<n;j++)
			{
				if(i+j==x)
					printf("%d\n",*(*(p+i)+j));
			}
	}



}
void main()
{
	int a[200][200];
	int i,j,row,col,sum;

	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(sum=0;sum<col;sum++){
			for(j=sum;j>=0;j--){
				i=sum-j;
				if(i>=row) break;
				printf("%d\n",a[i][j]);
			}
		}
		for(;sum<=col+row-2;sum++){
			for(j=col-1;j>=0;j--){
				i=sum-j;
				if(i>=row) break;
				printf("%d\n",a[i][j]);
			}
		}
	}
	else{
		for(sum=0;sum<col;sum++){
			for(j=sum;j>=0;j--){
				i=sum-j;
				if(i>=row) break;
				printf("%d\n",a[i][j]);
			}
		}
		for(;sum<=col+row-2;sum++){
			for(j=col-1;j>=0;j--){
				i=sum-j;
				if(i>=row) break;
				printf("%d\n",a[i][j]);
			}
		}
	}	
}
int main()
{
	int i,j,b,c,d,e,f,g,y,h,k,m,n,t,a,x[500][500];
	scanf("%d%d",&a,&b);
	y=0;
	for(i=1;i<=a;i++){
		for(j=1;j<=b;j++){
			scanf("%d",&x[i][j]);
		}
	}
	for(t=2;t<=a+b;t++){

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


	}
	return 0;
}
int main(){
    int row,col;
    scanf("%d%d",&row,&col);
    int array[100][100];
    for(int i=0;i<row;i++){
        for(int j=0;j<col;j++){
            scanf("%d",&array[i][j]);
            }
        }
    int p=0,q=0;
       while(p<row&&q<col){
         int e=0;
         while(p+e<row&&q-e>=0){
              printf("%d\n",array[p+e][q-e]);
              e++;
              }
         if(q<col-1){
            q++;
            }
         else if(q==col-1){
             p++;
             }
         }
    return 0;
}