Problem: You are given an integer N.

Construct any one N-by-N matrix a that satisfies the conditions below. It can be proved that a solution always exists under the constraints of this problem.

* 1 \leq a_{i,j} \leq 10^{15}
* a_{i,j} are pairwise distinct integers.
* There exists a positive integer m such that the following holds: Let x and y be two elements of the matrix that are vertically or horizontally adjacent. Then, {\rm max}(x,y) {\rm mod} {\rm min}(x,y) is always m.

Constraints

* 2 \leq N \leq 500

Input

Input is given from Standard Input in the following format:


N


Output

Print your solution in the following format:


a_{1,1} ... a_{1,N}
:
a_{N,1} ... a_{N,N}

Output

Print your solution in the following format:


a_{1,1} ... a_{1,N}
:
a_{N,1} ... a_{N,N}

Example

Input

2


Output

4 7
23 10

Solution (in CPP):

Solution:
#include<cstdio>
#define M 505
#define N 10000
long long gcd(long long x,long long y){return y?gcd(y,x%y):x;}
long long lcm(long long x,long long y){return x/gcd(x,y)*y;}
int b[N],i,j,l,m,n,r,t;bool w[N];long long a[M][M];
int main()
{
	for(int i=2;i<N;i++)
	{
		if(!w[i])w[b[t++]=i]=true;
		for(j=0;i*b[j]<N;j++)
		{
			w[i*b[j]]=true;
			if(i%b[j]==0)break;
		}
	}
	scanf("%d",&n);
	for(i=1;i<=n;i++)a[i][0]=a[0][i]=a[n+1][i]=a[i][n+1]=1;
	if(n==2)return 0*puts("4 7\n23 10");
	for(i=1;i<=n;i++)for(j=1;j<=n;j++)if(~(i^j)&1)a[i][j]=b[i+j>>1]*b[(n-j+(~n&1)+i>>1)+n];
	for(i=1;i<=n;i++)for(j=1;j<=n;j++)if(!a[i][j])a[i][j]=lcm(lcm(a[i-1][j],a[i][j-1]),lcm(a[i][j+1],a[i+1][j]))+1;
	for(i=1;i<=n;i++)for(j=1;j<=n;j++)printf("%lld%c",a[i][j],j==n?'\n':' ');
	return 0;
}