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<bits/stdc++.h>
using namespace std;
const int N=1010;
typedef long long ll;
int p[N],n,cnt,x[N],cmt,Y[N],*y=Y+N/2;
ll b[N][N];
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n;
	for(int i=2;cnt<2*n+2;++i){
		int flag=1;
		for(int j=1;j<=cnt;++j)
			if(i%p[j]==0){flag=0;break;}
		if(flag)p[++cnt]=i;
	}
	for(int i=1,j=n+1;i<=j;){
		x[cmt]=p[j--],cmt+=2;
		if(i<=j)x[cmt]=p[i++],cmt+=2;
	}
	cmt=-(n/2*2);
	for(int i=n+2,j=cnt;i<=j;){
		y[cmt]=p[j--],cmt+=2;
		if(i<=j)y[cmt]=p[i++],cmt+=2;
	}
	for(int i=1;i<=n;i+=2)
		for(int j=1;j<=n;++j)
			if(j&1)b[i][j]=x[i+j]*y[i-j],b[i+1][j]=(ll)x[i+j]*y[i-j]*x[i+j+2]*y[i+2-j]+1;
			else b[i+1][j]=x[i+j+1]*y[i+1-j],b[i][j]=(ll)x[i+j+1]*y[i+1-j]*x[i+j-1]*y[i-j-1]+1;
	for(int i=1;i<=n;++i)
		for(int j=1;j<=n;++j)cout<<b[i][j]<<" \n"[j==n],assert(b[i][j]<=1e15);
	return 0;
}