#include<stdio.h>

char map[10][10];

int main(){
  int i,j,k,ic=1,n,nx;
  do{
    scanf("%d",&n);
    if(!n) break;
    for(i=0,nx=1;i<n;i++){
      if(i%2){
	for(j=0;j<i+1;j++,nx++){
	  map[j][i-j]=nx;
	}
      }else{
	for(j=0;j<i+1;j++,nx++){
	  map[i-j][j]=nx;
	}
      }
    }
    nx=n*n;
    for(i=n-1;i>0;i--){
      if(i%2==n%2){
	for(j=n-1,k=i;j>i-1;j--,nx--,k++){
	  map[j][k]=nx;
	}	
      }else{
	for(j=n-1,k=i;j>i-1;j--,nx--,k++){
	  map[k][j]=nx;
	}
      }
    }
    printf("Case %d:\n",ic++);
    for(i=0;i<n;i++){
      for(j=0;j<n-1;j++){
	printf("%2d ",map[i][j]);
      }
      printf("%2d\n",map[i][j]);
    }
  }while(1);
  return 0;
}