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 CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 100;
int n;
int fa[maxn][maxn];
int main() {
  while (scanf("%d", &n) != EOF) {
    memset(fa, 0, sizeof(fa));
    int hang = 1;
    int lie = n / 2 + 1;
    int num = 1;
    while (1) {
      if (fa[hang][lie] == 0) {
        fa[hang][lie] = num++;
      }
      if (num == (n * n + 1)) break;
      int i = hang - 1;
      int j = lie + 1;
      if (i == 0) i = n;
      if (j == n + 1) j = 1;
      if (fa[i][j] == 0) {
        hang = i;
        lie = j;
      } else
        hang++;
    }
    for (int i = 1; i <= n; i++)
      for (int j = 1; j <= n; j++)
        if (j != n)
          printf("%d ", fa[i][j]);
        else
          printf("%d\n", fa[i][j]);
  }
  return 0;
}