The fundamental idea in the JPEG compression algorithm is to sort coeffi- cient of given image by zigzag path and encode it. In this problem, we don’t discuss about details of the algorithm, but you are asked to make simple pro- gram. You are given single integer N , and you must output zigzag path on a matrix where size is N by N . The zigzag scanning is start at the upper-left corner (0, 0) and end up at the bottom-right corner. See the following Figure and sample output to make sure rule of the zigzag scanning. For example, if you are given N = 8, corresponding output should be a matrix shown in right-side of the Figure. This matrix consists of visited time for each element.

<image>



Input

Several test cases are given. Each test case consists of one integer N (0 < N < 10) in a line. The input will end at a line contains single zero.

Output

For each input, you must output a matrix where each element is the visited time. All numbers in the matrix must be right justified in a field of width 3. Each matrix should be prefixed by a header “Case x:” where x equals test case number.

Example

Input

3
4
0


Output

Case 1:
  1  2  6
  3  5  7
  4  8  9
Case 2:
  1  2  6  7
  3  5  8 13
  4  9 12 14
 10 11 15 16
#include"stdio.h"
#include"string.h"
#include "algorithm"
#include "math.h"
using namespace std;
int main()
{
	int i,j,n,x,p[110][110],f,y,ca;
   //freopen("E:\\in.txt","r",stdin);
	ca=1;
   while(scanf("%d",&n))
   {
	   if(n==0) break;
	   y=n*n;
	   i=0;
	   j=0;
	   p[i][j]=1;
	   x=2;
	   f=0;
	   while(x<=y)
	   { 
            if(i==0||j==n-1)
			{
               j++;
			   if(j>=n)
			   {
				   j=n-1;
				   i++;
			   }
			   p[i][j]=x;
	
			   x++;
               while(j>0&&i<n-1)
			   {
                   i++;
                   j--;
				   p[i][j]=x;
	
			       x++;
			   }
		
			}
			else if (j==0||i==n-1)
			{
               i++;
			   if(i>=n)
			   {
				   i=n-1;
				   j++;
			   }
               p[i][j]=x;
			   x++;
			   while(i>0&&j<n-1)
			   {
				   i--;
				   j++;
				   p[i][j]=x;
			       x++;
			   }
			   
			}
	   } 
	   printf("Case %d:\n",ca++);
	   for (i=0;i<n;i++)
	   {
          for (j=0;j<n;j++)
          {
			 printf("%3d",p[i][j]);
          }
		  printf("\n");
	   }
   }
   return 0;
}