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.io.*;

public class CF710C {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		PrintWriter pw = new PrintWriter(System.out);
		boolean[][] odd = new boolean[n][n];
		int m = n / 2;
		odd[m][m] = true;
		for (int i = 1; i <= m; i++)
			odd[m - i][m] = odd[m + i][m] = odd[m][m - i] = odd[m][m + i] = true;
		int r = ((n * n + 1) / 2 - n - n + 1) / 4;
		for (int i = 1; i <= m; i++)
			for (int j = 1; j <= m; j++)
				if (r-- > 0)
					odd[m - i][m - j] = odd[m + i][m - j] = odd[m - i][m + j] = odd[m + i][m + j] = true;
		int o = 1, e = 2;
		for (int i = 0; i < n; i++) {
			StringBuilder sb = new StringBuilder();
			for (int j = 0; j < n; j++) {
				int k;
				if (odd[i][j]) {
					k = o;
					o += 2;
				} else {
					k = e;
					e += 2;
				}
				sb.append(k + " ");
			}
			pw.println(sb);
		}
		pw.close();
	}
}