Problem: Find an n × n matrix with different numbers from 1 to n2, so the sum in each row, column and both main diagonals are odd.

Input

The only line contains odd integer n (1 ≤ n ≤ 49).

Output

Print n lines with n integers. All the integers should be different and from 1 to n2. The sum in each row, column and both main diagonals should be odd.

Examples

Input

1


Output

1


Input

3


Output

2 1 4
3 5 7
6 9 8

Solution (in JAVA):

Solution:


import java.util.Scanner;

public class MAgicOddSquare {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[][] a = new int[n][n];
		int odd = 1;
		int even = 2;
		if(n==1)
			a[0][0] = 1;
		else
		if(n%2==0)
		{
			for (int i = 0; i < a.length-1; i++) {
				for (int j = 0; j < a.length; j++) {
					if(i%2==0){
						if(j%2==0){
							a[i][j] = even;
							even+=2;
						}
						else
						{
							a[i][j] = odd;
							odd+=2;
						}
					}
					else
					{
						if(j%2==0){
							a[i][j] = odd;
							odd+=2;
						}
						else
						{
							a[i][j] = even;
							even+=2;
						}
					}
				}
			}
			for (int i = 0; i < a.length; i++) {
				if(i%2!=0){
					a[n-1][i] = odd;
				odd+=2;
				}
				else{
					a[n-1][i] = even;
					even+=2;
				}
			}
		}
		else
		{
			int odd2 = 1;
			for (int i = 0; i < a.length; i++) {
			
				for (int j = 0; j < a.length; j++) {
				if(i<=n/2){
					if(j>=n/2-odd2/2 && j<= n/2+odd2/2){
						a[i][j] = odd;
						odd+=2;
					}
					else
					{
						a[i][j]= even;
						even+=2;
					}
//					odd2+=2;
				}
				else
				{
//					odd2-=2;
					if(j>=n/2-odd2/2 && j<= n/2+odd2/2){
						a[i][j] = odd;
						odd+=2;
					}
					else
					{
						a[i][j]= even;
						even+=2;
					}
					}
				}
				if(i<n/2)
					odd2+=2;
				else
					odd2-=2;
			}
		}
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < a.length; i++) {
			for (int j = 0; j < a.length; j++) {
				sb.append(a[i][j]);
				if(j!=n-1)
					sb.append(" ");
			}
			sb.append("\n");
		}
		System.out.print(sb);
	}
}