#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int i = 1;
int j = n - 1;
int k = 0;
int a = 0;
int array[n][n];
while (i <= n*n)
{
array[k][k] = i;
i++;
array[k][n-k -1] = i;
i++;
array[n-k-1][n-k - 1 ] = i;
i++;
array[n-k-1][k] = i;
i++;
if (i > n*n)
break;
while (a < j - 1)
{
array[k][k + a + 1] = array[k][k + a] + 4;
a++;
i++;
}
a = 0;
while (a < j - 1)
{
array[k + a + 1][n-k-1] = array[k + a][n - k - 1] + 4;
a++;
i++;
}
a = 0;
while (a < j - 1)
{
array[n - k - 1][n - k - a - 2] = array[n - k - 1][n - k - a - 1] + 4;
a++;
i++;
}
a = 0;
while (a < j - 1)
{
array[n-k-a-2][k] = array[n-k-a-1][k] + 4;
a++;
i++;
}
a = 0;
k++;
j--;
}
k = 0;
j = 0;
while(k < n)
{
while(j < n)
{
cout << array[k][j] << " ";
j++;
}
k ++;
j = 0;
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIGludCBpID0gMTsKICAgIGludCBqID0gbiAtIDE7CiAgICBpbnQgayA9IDA7CiAgICBpbnQgYSA9IDA7CiAgICBpbnQgYXJyYXlbbl1bbl07CiAgICB3aGlsZSAoaSA8PSBuKm4pCiAgICB7CiAgICAgICAgYXJyYXlba11ba10gPSBpOwogICAgICAgIGkrKzsKICAgICAgICBhcnJheVtrXVtuLWsgLTFdID0gaTsKICAgICAgICBpKys7CiAgICAgICAgYXJyYXlbbi1rLTFdW24tayAtIDEgXSA9IGk7CiAgICAgICAgaSsrOwogICAgICAgIGFycmF5W24tay0xXVtrXSA9IGk7CiAgICAgICAgaSsrOwogICAgICAgIGlmIChpID4gbipuKQogICAgICAgICAgICBicmVhazsKICAgICAgICB3aGlsZSAoYSA8IGogLSAxKQogICAgICAgIHsKICAgICAgICAgICAgYXJyYXlba11bayArIGEgKyAxXSA9IGFycmF5W2tdW2sgKyBhXSArIDQ7CiAgICAgICAgICAgIGErKzsKICAgICAgICAgICAgaSsrOwogICAgICAgIH0KICAgICAgICBhID0gMDsKICAgICAgICB3aGlsZSAoYSA8IGogLSAxKQogICAgICAgIHsKICAgICAgICAgICAgYXJyYXlbayArIGEgKyAxXVtuLWstMV0gPSBhcnJheVtrICsgYV1bbiAtIGsgLSAxXSArIDQ7CiAgICAgICAgICAgIGErKzsKICAgICAgICAgICAgaSsrOwogICAgICAgIH0KICAgICAgICBhID0gMDsKICAgICAgICB3aGlsZSAoYSA8IGogLSAxKQogICAgICAgIHsKICAgICAgICAgICAgYXJyYXlbbiAtIGsgLSAxXVtuIC0gayAtIGEgLSAyXSA9IGFycmF5W24gLSBrIC0gMV1bbiAtIGsgLSBhIC0gMV0gKyA0OwogICAgICAgICAgICBhKys7CiAgICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgICAgYSA9IDA7CiAgICAgICAgd2hpbGUgKGEgPCBqIC0gMSkKICAgICAgICB7CiAgICAgICAgICAgIGFycmF5W24tay1hLTJdW2tdID0gYXJyYXlbbi1rLWEtMV1ba10gKyA0OwogICAgICAgICAgICBhKys7CiAgICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgICAgYSA9IDA7CiAgICAgICAgaysrOwogICAgICAgIGotLTsKICAgIH0KICAgIGsgPSAwOwogICAgaiA9IDA7CiAgICB3aGlsZShrIDwgbikKICAgIHsKICAgICAgICB3aGlsZShqIDwgbikKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgYXJyYXlba11bal0gPDwgIiAiOwogICAgICAgICAgICBqKys7CiAgICAgICAgfQogICAgICAgIGsgKys7CiAgICAgICAgaiA9IDA7CiAgICAgICAgY291dCA8PCBlbmRsOwogICAgfQogICAgcmV0dXJuIDA7Cn0K