semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int max(int a,int b)
{
	if(a>=b)
	{
		return a;
	}
	else
	{
		return b;
	}
}
int min(int a,int b)
{
	if(a<=b)
	{
		return a;
	}
	else
	{
		return b;
	}
}
int main()
{
	int a[100][100];
	int hang,lie;
	int i,j,k;
	scanf("%d%d",&hang,&lie);
	for(i=0;i<=hang-1;i++)
	{
		for(j=0;j<=lie-1;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	for(k=0;k<=hang+lie-2;k++)
	{
		   for(i=max(0,k-lie+1);i<=min(hang-1,k);i++)
		   {
			   printf("%d\n",a[i][k-i]);
		   }
	}
	return 0;
}
void main()
{
	int a[100][100];
	int row,col;
	int 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(j=0;j<col;j++)
	{
		k=0;
		l=j;
		while(k<row&&l>=0)
		{
			printf("%d\n",a[k][l]);
			k++;
			l--;
		}
	}
	for(i=1;i<row;i++)
	{
		k=i;
		l=col-1;
		while(k<row&&l>=0)
		{
			printf("%d\n",a[k][l]);
			k++;
			l--;
		}
	}

	
}
int main()
{

	int col,row,sz[100][100];
	cin>>row>>col;
		int l,m;
	for(l=0;l<row;l++)
	{
		for(m=0;m<col;m++)
		{
			cin>>sz[l][m];
		}
	}
	int i,j,k;

	for(k=0;k<row+col-1;k++)
	{
	for(i=0;i<row;i++)
		{
			for(j=0;j<col;j++)
			{
				if(k==i+j)
				{
					cout<<sz[i][j]<<endl;
				}
				if(i+j>k)
					break;
				
			}
		}
	}

	


    
	return 0;
}
int main()
{
	int n,m,a[1500][1500],b[10000],i,j,sum,t=0;///????
	cin>>n>>m;
	for (i=1;i<=1499;i++) for (j=1;j<=1499 ;j++) a[i][j]=-198;
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
		{
			cin>>a[i][j];
		}
		for(sum=2;sum<=(n+m);sum++)
		{
			for (i=1;i<sum;i++)	
			{
				if (a[i][sum-i]!=-198)
					cout<<a[i][sum-i]<<endl;
			}
		}
		return 0;
}
void main()
{
    int row,col,i,j;
    scanf ("%d%d",&row,&col);
    int **a;
    a=(int**)malloc(row*sizeof(int*));
    for (i=0;i<row;i++)
    a[i]=(int*)malloc(col*sizeof(int));
    for (i=0;i<row;i++)
    {
        for (j=0;j<col;j++)
        scanf ("%d",*(a+i)+j);
    }
    int len;
    for (len=0;len<row+col-1;len++)
	{
        for(i=0;i<row;i++)
		{
            j=len-i;
            if((j<col)&&(j>=0))
                printf("%d\n",*(*(a+i)+len-i));
        }
    }
    return 0; 
}
int main()
{
    int row, col,n,i,j,k,a[120][120];
    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<=col;i++){
                        k=i;
                        j=1;
                        while(k>=1&&j<=row){
                                    printf("%d\n", a[j][k]);
                                    j++;
                                    k--;
                                    }
                        }
    for(j=2;j<=row;j++){
                                     k=col;
                                     i=j;
                                     while(j<=row&&k>=1){
                                                       printf("%d\n", a[j][k]);
                                                       j++;
                                                       k--;
                                                       }
                                    j=i;
                                    }
    return 0;
    }
main()
{
  int row,col,n,i,j,k,(*p)[100],a[100][100];
  scanf("%d %d",&row,&col);
  p=a;
  for(i=0;i<row;i++)
  {
    for(j=0;j<col;j++)
    { scanf("%d",*(p+i)+j);
    }
  }
  p=&a[0][0];
  for(k=0;k<row+col;k++)
  {
    for(i=0;i<=k;i++)
    {
	if(i<row&&k-i<col)
	{
	  printf("%d\n",*(*(p+i)+(k-i)));
	}
    }
  }
}
void main()
{
	int a[100][100], i, j, m, n, row, col;
    scanf("%d%d",&row,&col);
	for(i=0;i<=row-1;i++)
		for(j=0;j<=col-1;j++)
			scanf("%d",&a[i][j]);
		m=row+col-2;
		for(n=0;n<=m;n++)
			for(i=0;i<=row-1;i++)
				for(j=0;j<=col-1;j++)
					if(i+j==n)
						printf("%d\n",a[i][j]);
			
}
/*
 * 1028-1.cpp
 *
 *  Created on: 2011-11-3
 *      Author: Administrator
 */
int main (){
	int col,row,i,j,k;
	cin>>row>>col;
	int a[row][col];
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
			cin>>a[i][j];
	for(k=0;k<col;k++)
		for(i=0,j=k;(i<row)&&(j>=0);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 row,col,i,j,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]);
		}
	}
	for(n=0;n<row-1+col;n++)
	{
		if(n<col)
		{
			for(i=n;((n-i)<=(row-1))&&(i>=0);i--)
				printf("%d\n",a[n-i][i]);
		}
		if(n>col-1)
		{
			for(i=col-1;((n-i)<=(row-1))&&(i>=0);i--)
				printf("%d\n",a[n-i][i]);
		}
	}
	return 0;
}
void main()
{
int i,j,a[100][100],row,col,t=0,flag=0,max;
scanf("%d %d",&row,&col);
for(i=0;i<row;i++){for(j=0;j<col;j++)scanf("%d",&a[i][j]);}
max=(row>col)?row:col;
for(i=0,j=0;;)
{
	if(i<row&&j<col)printf("%d\n",a[i][j]);
	if(i==max-1&&j==max-1)break;
	if(flag==0)
	{
		if(j==0&&i==max-1){flag=1;t=max;j=max-1;}
		else if(j==0){t=t+1;j=t;}
		else j=j-1;
	}
	else 
	{
		if(i==max-1){t=t+1;j=max-1;}
		else j=j-1;
	}
	i=t-j;
}
}
int main()
{
	int m ,n , num[100][100];
	cin>>m>>n;
	cout<<endl;
	for (int u=0;u<m;u++)
	{//??????
	   for (int v=0;v<n;v++)
	      cin>>num[u][v];
	   cout<<endl;
	}
	for (int i=0;i<n+m-1;i++)
	{//???????????????????????????????
	   for (int j=0;j<m;j++)
	   {
	      for (int k=0;k<n;k++)
		  {
		     if (j+k==i) cout<<num[j][k]<<endl;
		  }
       }
	}
	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 (*p)[n]=a;
   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<<*(*(p+i)+sum-i)<<endl;
          }
         sum++;
       }
    else
      {
       for(int i=sum+1-n;i<=sum;i++)
         {
          if(i>m-1) break;
          cout<<*(*(p+i)+sum-i)<<endl;
         }
       sum++;
       }
    }
 
 

 return 0;
 }
int main(){
	int row,col,i,j,s;
	cin>>row>>col;
	int array[100][100];
	for(i=0;i<row;i++)          //?????
		for(j=0;j<col;j++)
		cin>>array[i][j];
	for(i=0;i<col;i++)          //????????
		{s=i;
		 while(s>=0&&(i-s)<row)
		   {cout<<array[i-s][s]<<endl;
		   s--;}
		   }
         for(i=col;i<col+row-1;i++)  //????????
                   {s=col-1;
    		 while(s>=0&&(i-s)<row)
    		   {cout<<array[i-s][s]<<endl;
    		   s--;}
    		   }

	return 0;
}
int main()
{
    int hang,lie,a[100][100]={0};
    cin>>hang>>lie;
    int i,j,k;
    for(i=0;i<hang;i++)
    {
        for(j=0;j<lie;j++)
            cin>>*(*(a+i)+j);
    }
    for(k=0;k<(hang+lie-1);k++)
    {
        if(k<lie)
        {
            for(i=0;i<hang&&(k-i)>-1;i++)
            cout<<*(*(a+i)+k-i)<<endl;
        }
        else
        {
            for(i=(k-lie+1);i<hang&&(k-i)>-1;i++)
            cout<<*(*(a+i)+k-i)<<endl;
        }
    }
    return 0;
}
int main()
{
	int a[101][101] = {0};
	int row, col, i, j, n, sum;
	cin >> row >> col;
	for(i = 0; i < row; i++)
		for(j = 0; j < col; j++)
			cin >> a[i][j];
    for(n = 0; n < row + col - 1; n++)
	    for(i = 0; i <= n;i++)
		{   
		    if(i < row&&n- i < col)
				cout << a[i][n - i] << endl;
			else continue;
		}
    return 0;
}
int main()
{
	int n=1,h,l,i,j,a[100][100],lans=0,ans[10000],k;
	scanf("%d%d",&h,&l);
	for(i=0;i<h;i++)
		for(j=0;j<l;j++)
			scanf("%d",&a[i][j]);
		for(n=1;n<=l;n++)
			for(j=0,k=n-1;k>=0&&j<=h-1;j++,k--)
			ans[lans++]=a[j][k];
		for(n=2;n<=h;n++)
			for(j=n-1,k=l-1;j<=h-1&&k>=0;j++,k--)
				ans[lans++]=a[j][k];
		for(i=0;i<lans;i++)
			printf("%d\n",ans[i]);


	return 0;
}
int main()
{
    int a[101][101],*p;
    int m,n;
    cin>>m>>n;
    for (p=*a;p<*a+m*n;p++) cin>>*p;
    p=*a;
    for (int i=0;i<n;i++)
    {
        int a=0,b=i;
        while ((a<m)&&(b>=0))
        {
              cout<<*(p+a*n+b)<<endl;
              a++;
              b--;
        }
    }
    for (int i=1;i<m;i++)
    {
        int a=i,b=n-1;
        while ((a<m)&&(b>=0))
        {
              cout<<*(p+a*n+b)<<endl;
              a++;
              b--;
        }
    }
    
    return 0;
}
int main(){
	int i,j,row,col,n;
	int sz[100][100];
	scanf("%d%d",&row,&col);
	for(i=0;i<row;i++){
		for(j=0;j<col;j++){
			scanf("%d",&sz[i][j]);
		}
	}
	if(row>col){
	for(n=0;n<col;n++){
		for(i=0;i<col;i++){
			if(n-i>0||n-i==0){
			printf("%d\n",sz[i][n-i]);
			}
		}
	}
    for(n=col;n<col+row-1;n++){
        for(j=col-1;j>=0;j--){
			if(n-j<row){
			    printf("%d\n",sz[n-j][j]);
			}
		}
	}
	}else{
	for(n=0;n<col;n++){
		for(i=0;i<row;i++){
			if(n-i>0||n-i==0){	
			printf("%d\n",sz[i][n-i]);
			}
		}
	}
    for(n=col;n<col+row-1;n++){
        for(j=col-1;n-j<row;j--){
			    printf("%d\n",sz[n-j][j]);
		}
	}
	}
		
	return 0;
}
int main()
{
	int r,c,a[100][100],i,j,k,b[10000];
	scanf("%d%d",&r,&c);
	for(i=0;i<r;i++)
	{for(j=0;j<c;j++)
	scanf("%d",&a[i][j]);}
	for(j=0;j<c;j++)
	{i=0;
	for(k=j;k>=0&&i<r;k--,i++)
	{printf("%d\n",a[i][k]);}}
	for(i=1;i<r;i++)
	{j=c-1;
	for(k=i;k<r&&j>=0;k++,j--)
	{printf("%d\n",a[k][j]);}
	}
	return 0;
}
int main()
{
	int*p;
	int row,col,i,j;
	scanf("%d %d",&row,&col);
	p=(int*)malloc(row*col*sizeof(int));
	for(i=0;i<row*col;i++)
	{
		scanf("%d",p+i);
	}
	for(i=1;i<=col;i++)
	{
		j=i;
		while((col!=1)&&(j%col!=1)&&(j+col-1<row*col))
		{
			printf("%d\n",*(p+j-1));	
			j=j+col-1;
		}
		printf("%d\n",*(p+j-1));
	}
	for(i=2;i<=row;i++)
	{ 
		j=i*col;
		while((col!=1)&&(j%col!=1)&&(j+col-1<row*col))
		{
			printf("%d\n",*(p+j-1));
			j=j+col-1;
		}
		printf("%d\n",*(p+j-1));
	}
}
int main() 
{ 
     int row, col, i, j, temp_i, *a[100][100]; 
     scanf("%d%d", &row, &col); 
     for(i=0;i<row;i++) 
          for(j=0;j<col;j++) 
               {a[i][j]= (int *)malloc(sizeof(int));
               scanf("%d", a[i][j]); }
     for(j=0;j<col;j++)
     {
           for(i=0;i<=j&&i<row;i++) 
                 printf("%d\n", *a[i][j-i]); 
     } 
     for(i=1;i<row;i++)
     { 
           for(j=col-1,temp_i=i;j>=0&&temp_i<row;j--, temp_i++)
          { 
                 printf("%d\n", *a[temp_i][j]); 
           } 
     } 
     return 0; 
}
void main()
{
	int *p1[100],*p2,i,j,n,m,s;
	scanf("%d %d",&n,&m);
	for(i=0;i<100;i++)
		p1[i]=(int*)malloc(100*sizeof(int));
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
			scanf("%d",&*(*(p1+i)+j));
		for(s=0;s<n+m-1;s++)
			for(i=0;i<n;i++)
			{
				if(s-i<m)
				printf("%d\n",*(*(p1+i)+s-i));
				if(s-i==0||i==n)
					break;
			}
}
int main(){
    int i,j,row,col,r,c,num,ro,co;
    int a[100][100];
    scanf("%d%d",&row,&col);
    for(i=1;i<=row;i++){
		for(j=1;j<=col;j++){
			scanf("%d",&a[i][j]);
			}
		}
	r=1;
	c=1;
	while(1){
		ro=r;
		co=c;
		while(1){
			printf("%d\n",a[ro][co]);
			ro++;
			co--;
			if(ro>row||co<=0){
				break;
				}
			}
		if(c==col&&r==row){
			break;
			}
		if(c<col){
			c++;
			}
		else{
			r++;
			}
		}
	return 0;
	}
int main()
{
	int row,col,s[100][100],i,k;
	scanf("%d%d",&row,&col);
	for(i=0;i<row;i++)
	{
		for(k=0;k<col;k++)
		{
			scanf("%d",&s[i][k]);
		}
	}
	if(col<row)
	{
		for(i=0;i<=(row+col);i++)
		{
			for(k=0;k<row&&k<=i;k++)
			{
				if((i-k)>=col)
					continue;
				else
					printf("%d\n",s[k][i-k]);
			}
		}
	}
	else if(col>=row)
	{
		for(i=0;i<=(col+row);i++)
		{
			for(k=0;k<=i&&k<row;k++)
			{
				if((i-k)>=col)
					continue;
				else
					printf("%d\n",s[k][i-k]);
			}
		}
	}
	return 0;
}
int main(){
	int sz[100][100];
	int i,k,n,j;
	int ROW,COL,row,col;
	scanf("%d %d",&ROW,&COL);
	if(ROW>COL){
		j=COL-1;
	}
	else{
		j=ROW-1;
	}
	for(i=0;i<ROW;i++){
		for(k=0;k<COL;k++){
			scanf("%d",&(sz[i][k]));
		}
	}
	for(n=0;n<=j;n++){
		for(row=0;row<=n;row++){
			printf("%d\n",sz[row][n-row]);
		}
	}
	if(COL>ROW){
		for(n=j+1;n<COL;n++){
			for(row=0;row<ROW;row++){
				printf("%d\n",sz[row][n-row]);
			}
		}
		for(n=COL;n<=COL+ROW-2;n++){
			for(col=COL-1;col>=n-ROW+1;col--){
				printf("%d\n",sz[n-col][col]);
			}
		}
	}
	if(ROW>COL){
		for(n=j+1;n<ROW;n++){
			for(col=COL-1;col>=0;col--){
				printf("%d\n",sz[n-col][col]);
			}
		}
		for(n=ROW;n<=COL+ROW-2;n++){
			for(col=COL-1;col>=n-ROW+1;col--){
				printf("%d\n",sz[n-col][col]);
			}
		}
	}
	if(ROW==COL){
		for(n=j+1;n<=COL+ROW-2;n++){
			for(col=COL-1;col>=n-ROW+1;col--){
				printf("%d\n",sz[n-col][col]);
			}
		}
	}
	return 0;
}
/*
 * diag.cpp
 *
 *  Created on: 2013-12-6
 *      Author: ???1300012996
 */
int main(){
	int row,col;cin>>row>>col;
	int i;int a[10010],*p=a;
	for(i=0;i<row*col;i++){cin>>*p;p++;}
	p=a;
    for(int c=0;c<row+col;c++){
    	for(i=c;i>=0;i--){
    		if(i<col&&c-i<row){cout<<*(p+i+(c-i)*col)<<endl;}
    	}
    }
	return 0;
}
int main()
{
	int row,col,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(i=0;i<col;i++){
		for(j=0;j<row;j++){
			printf("%d\n", array[j][i-j]);
			if(i-j==0) break;
		}
	}	
	for(i=1;i<row;i++){
		for(j=i;j<row;j++){
			printf("%d\n",array[j][col-1-j+i]);
			if(col-1-j+i==0) break;}}
	return 0;
}
int main()
{
    int m,n;
    cin >> m >> n;
    int array[m+1][n+1];
    for(int i = 1; i <= m; ++i)
            for(int t = 1; t <= n; ++t)
            cin >> array[i][t];
    int sum = 1;
    int x[3] = {0,0,1};
    int y[3] = {0,1,0};
    int dx = 1, dy = 1, k = 1;
    int tx,ty;
    while(sum <= m*n)
    {
              int xx = dx, yy = dy;
              for(;;)
              {
                     if(xx > m || yy < 1) break;
                     cout << array[xx][yy] << endl;
                     xx = xx + 1, yy = yy - 1;
                     sum++;
              }
              tx = dx + x[k], ty = dy + y[k];
              if(ty > n)
              {
                    k++;
                    tx = dx + x[k], ty = dy + y[k];
              }
              dx = tx, dy = ty;
    }
    //while(1);
    return 0;
}
int n, m, a[101][101], *p1, *p2, *p3, j, k;
int main()
{
    cin >> n >> m;
    for (p1 = *a, j = 0; j < n; ++ j, p1 += 101)
        for (p2 = p1, k = 0; k < m; ++ k, ++ p2)
            cin >> *p2;
    for (p2 = *a, j = 1; j <= m; ++ j, ++ p2)//??????0???????
        for (p3 = p2, k = min(j, n); k --; p3 += 100)
            cout << *p3 << endl;
    for (p2 += 100, j = n - 1; j; -- j, p2 += 101)//???????????????
        for (p3 = p2, k = min(m, j); k --; p3 += 100)
            cout << *p3 << endl;
    return 0;
}
/*
 * youshangzuoxiabianli.cpp
 *?????????? 
 *  Created on: 2012-12-11
 *      Author: ???
 */
int main(){
	int row,col,array[100][100];//????????????
	int i,j,k;
	cin >> row >> col;//????
	for(i=0;i<row;i++){
		for(j=0;j<col;j++){
			cin >> array[i][j];//????
		}
	}
	for(k=0;k<col;k++){//?????????????
		cout << array[0][k]<<endl;
		for(i=1,j=k-1;;i++,j--){
			if(i<row && j>=0)
			cout << array[i][j] << endl;
			else break;//???????
		}
	}
	for(k=1;k<row;k++){//??????????????????
		cout << array[k][col-1]<<endl;
		for(i=k+1,j=col-2;;i++,j--){
			if(i<row && j>=0)
			cout << array[i][j]<<endl;
			else break;
		}
	}
	return 0;
}
int main ()
{
	int a[105][105]={0},row,col;
	cin>>row>>col;
	for (int i=1;i<=row;i++)
		for (int j=1;j<=col;j++)
			cin>>*(*(a+i)+j);//??????
	for (int i=1;i<=col;i++){//????????????????
		int k=1;
		while (k<=row && i-k+1>=1){
			cout<<*(*(a+k)+i-k+1)<<endl;
			k++;
		}
	}
	for (int i=2;i<=row;i++){//?????????????????
		int k=0;
		while (i+k<=row && col-k>=1){
			cout<<*(*(a+i+k)+col-k)<<endl;
			k++;
		}
	}
	return 0;
}
void main()
{
    int i,j,k,hang,lie,(*a)[100];
	a=(int (*)[100])malloc(100*100*sizeof(int));
    scanf("%d %d",&hang,&lie);
	for (i=0;i<hang;i++)
	{
	    for (j=0;j<lie;j++)
		{
		    scanf("%d",&*(*(a+i)+j));
		}
	}
	if (hang<=lie)
	{
	    for (j=0;j<hang;j++)
		{
		    for (i=j,k=0;i!=-1;i--,k++)
			{
			    printf("%d\n",*(*(a+k)+i));
			}
		}
		for (j=hang;j<lie;j++)
		{
		    for (i=j,k=0;k!=hang;i--,k++)
			{
				printf("%d\n",*(*(a+k)+i));
			}
		}
		for (j=1;j<hang;j++)
		{
		    for (k=j,i=lie-1;k<hang;k++,i--)
			{
			    printf("%d\n",*(*(a+k)+i));
			}
		}
	}
	else
	{
	        for (j=0;j<lie;j++)
			{
		        for (i=j,k=0;i>=0;i--,k++)
				{
			        printf("%d\n",*(*(a+k)+i));
				}
			}
			
			for (j=lie;j<hang;j++)
			{
			    for (i=lie-1,k=j-lie+1;i>=0;i--,k++)
				{
				printf("%d\n",*(*(a+k)+i));
				}
			}
            
			for (j=hang-lie+1;j<hang;j++)
			{
		            for (k=j,i=lie-1;k<hang;k++,i--)
			     {
			      printf("%d\n",*(*(a+k)+i));
			    }
			}
	}
}
int main()
{
	int m,n;
	int a[100][100];
	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-1;i++)
		for(int j=n-1;j>=0;j--)
		{
			if(i-j<m&&i-j>=0)
				cout<<*(*(a+i-j)+j)<<endl;
		}
	return 0;
}
int main()
{
	int row,col,k,i,j;//??????
	cin >>row >>col;//??????
	int array[row][col];//????
	for(i=0;i<row;i++)//??????
		for(j=0;j<col;j++)
			cin >>array[i][j];
	int (*p)[col];//??????
	p=array;//??
	cout <<**p<<endl;//???????
	for(k=1;k<=row+col-2;k++)//??????????????????  ???????????????
		for(i=0,j=k-i;i<row;i++,j--)//????  ????  ????
		{
			if(i>=0&&i<row&&j>=0&&j<col)//???????????????
				cout <<*(*(p+i)+j)<<endl;//?????
		}
	return 0;

}
int sz[100][100];

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

}
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]);
		}
	}
	if(row==col){
		for(int a=0;a<col;a++){
			for(int j=a;j>=0;j--){
				printf("%d\n",array[a-j][j]);
			}
		}
		for(int b=col;b<(2*col-1);b++){
			for(int i=(b-col+1);i<row;i++){
				printf("%d\n",array[i][b-i]);
			}
		}
	}
	if(row>col){
		for(int a=0;a<col;a++){
			for(int j=a;j>=0;j--){
				printf("%d\n",array[a-j][j]);
			}
		}
		for(int b=col;b<row;b++){
			for(int j=col-1;j>=0;j--){
				printf("%d\n",array[b-j][j]);
			}
		}
		for(int c=row;c<(row+col-1);c++){
			for(int j=col-1;j>(c-row);j--){
				printf("%d\n",array[c-j][j]);
			}
		}
	}
	if(row<col){
		for(int a=0;a<row;a++){
			for(int j=a;j>=0;j--){
				printf("%d\n",array[a-j][j]);
			}
		}
		for(int b=row;b<col;b++){
			for(int i=0;i<row;i++){
				printf("%d\n",array[i][b-i]);
			}
		}
		for(int c=col;c<(row+col-1);c++){
			for(int j=col-1;j>(c-row);j--){
				printf("%d\n",array[c-j][j]);
			}
		}
	}
	return 0;
}
int m,n,k[100][100];
void display(int i,int j)
{
	if(i>=m||j>=n||i<0||j<0)
	{
		return;
	}
	else
	{
		cout<<k[i][j]<<endl;
		display(i+1,j-1);
	}
}
int main()
{
	int i=0,j=0;
	cin>>m>>n;
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
			cin>>k[i][j];
		}
	}
	for(j=0;j<n;j++)
	{
		display(0,j);
	}
	for(i=1;i<m;i++)
	{
		display(i,n-1);
	}
	return 0;
}
int main(){
	int row,col,i,j;
	cin>>row>>col;
	int a[100][100];
	for(i=0;i<row;i++)
		for(j=0;j<col;j++)
			cin>>*(*(a+i)+j);
	for(int t=0;t<row+col-1;t++)
		for(j=(col-1>t?t:col-1);t-j<=row-1&&j>=0;j--)
			cout<<*(*(a+t-j)+j)<<endl;
	return 0;
}
/*
 * ??????????????.cpp
 * ?????
 *  Created on: 2012-12-22
 *  ???????row?col??????array????array[0][0]????????????????????????
 */
int main()
{
	int col,row;
	int array[100][100];
	int (*p)[100];      //??????????
	cin>>row>>col;         //?????
	for(int i=0;i<row;i++)
		for(int j=0;j<col;j++)
			cin>>array[i][j];       //????
	p=array;       //???????????
	for(int i=0;i<=row+col-2;i++)
		for(int j=(i>=col)?(i-col+1):0;(j<row)&&(i-j>=0);j++)   //??????????????????????0
			cout<<*(*(p+j)+i-j)<<endl;         //???j??i-j?????????
return 0;            //????
}
int ROW,COL;
int row=-1,col=1;
int array[100][100];
int move(){
	row++;
	col--;
	printf("%d\n",array[row][col]);
	return 0;
}
int big_move(){
	if(row+col<COL-1){
		col=row+col+1;
		row=0;
	}
	else{
		row=row+col-COL+2;
		col=COL-1;
	}
	printf("%d\n",array[row][col]);
	return 0;
}
int main(){
	scanf("%d%d",&ROW,&COL);
	int r,c;
	for(r=0;r<ROW;r++){
		for(c=0;c<COL;c++){
			scanf("%d",&array[r][c]);
		}
	}
	if (ROW==1&&COL==1){
		printf("%d",array[0][0]);
		return 0;
	}
	while(row!=ROW-1||col!=COL-1){
		while(col!=0&&row!=ROW-1)
			move();
		big_move();
	}
	return 0;
}
int main() {
	int row, col, a[200][200];
	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 <= i && j < row && (i-j)<col; j ++)
			cout << *(a[j] + (i-j)) << endl;
	for(int k = col; k <= row + col -2; k ++)
		for(int q = col-1; q >= k-row+1&& q>=0;q --)
			cout << *(a[k-q] + q)<<endl;
	return 0;
}
int main()
{
	int row=0,col=0;
	int a[101][101];
	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<col;i++)
	{
		cout<<*(*(a)+i)<<endl;
		for(int j=1;i-j>=0&&j<row;j++)
			cout<<*(*(a+j)+i-j)<<endl;
	}
	for(int i=1;i<row;i++)
	{
		cout<<*(*(a+i)+col-1)<<endl;
		for(int j=1;i+j<row&&j<=col-1;j++)
			cout<<*(*(a+i+j)+col-1-j)<<endl;

	}
	return 0;
}
int main()
{
   int	array[99][99];
   int  row,col,i,j,t=0;
   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<=row+col-2;t++)
   {if(t<col)
   {
	   for(i=0;i<=t&&i<=row-1;i++)
	   {
			  printf("%d\n",array[i][t-i]);
	   }
   }
   else{
	   for(i=t+1-col;i<=t&&i<=row-1;i++)
		   printf("%d\n",array[i][t-i]);
   }
   }
   return 0;
}
void main()
{
	int x,y,(*p)[100],i,j,k;
	scanf("%d%d",&y,&x);
	p=(int (*)[100])malloc(100*y*sizeof(int));
    for(i=0;i<y;i++)
		for(j=0;j<x;j++)
			scanf("%d",*(p+i)+j);
	i=0;j=0;
		for(k=0;k<x*y;k++)
	{
			printf("%d\n",*(*(p+i)+j));
			i++;j--;
			if(j<0)
			{j=i+j+1;
			 i=0;
			}
			if(i>=y)
			{j=i+j+1;
			 i=0;
			}
			while(j>=x)
			{
				i++;
				j--;
			}
			

	}






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

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

	
}