'''
Дополнительная
Выведите таблицу размером n×n, заполненную числами от 1 до n2 по спирали, выходящей из левого верхнего угла и закрученной по часовой стрелке, как показано в примере (здесь n=5):
Sample Input:
5
Sample Output:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
'''
n = int ( input ( ) )
matrix = [ [ 0 for j in range ( n) ] for i in range ( n) ]
matrix[ 0 ] [ 0 ] = 1
cur_i = 0
cur_j = 0
step_i = 0
step_j = 1
i = 1
while ( i != n*n) :
i += 1
if ( step_i == 1 ) :
if ( ( cur_i + step_i == n) or ( matrix[ cur_i + step_i] [ cur_j] != 0 ) ) :
step_i = 0
step_j = -1
cur_j += step_j
else :
cur_i += step_i
elif ( step_i == -1 ) :
if ( ( cur_i + step_i == -1 ) or ( matrix[ cur_i + step_i] [ cur_j] != 0 ) ) :
step_i = 0
step_j = 1
cur_j += step_j
else :
cur_i += step_i
elif ( step_j == 1 ) :
if ( ( cur_j + step_j == n) or ( matrix[ cur_i] [ cur_j + step_j] != 0 ) ) :
step_j = 0
step_i = 1
cur_i += step_i
else :
cur_j += step_j
elif ( step_j == -1 ) :
if ( ( cur_j + step_j == -1 ) or ( matrix[ cur_i] [ cur_j+step_j] != 0 ) ) :
step_j = 0
step_i = -1
cur_i += step_i
else :
cur_j += step_j
matrix[ cur_i] [ cur_j] = i
for i in range ( n) :
for j in range ( n) :
print ( matrix[ i] [ j] , end= ' ' )
print ( )
JycnCtCU0L7Qv9C+0LvQvdC40YLQtdC70YzQvdCw0Y8K0JLRi9Cy0LXQtNC40YLQtSDRgtCw0LHQu9C40YbRgyDRgNCw0LfQvNC10YDQvtC8IG7Dl24sINC30LDQv9C+0LvQvdC10L3QvdGD0Y4g0YfQuNGB0LvQsNC80Lgg0L7RgiAxINC00L4gbjIg0L/QviDRgdC/0LjRgNCw0LvQuCwg0LLRi9GF0L7QtNGP0YnQtdC5INC40Lcg0LvQtdCy0L7Qs9C+INCy0LXRgNGF0L3QtdCz0L4g0YPQs9C70LAg0Lgg0LfQsNC60YDRg9GH0LXQvdC90L7QuSDQv9C+INGH0LDRgdC+0LLQvtC5INGB0YLRgNC10LvQutC1LCDQutCw0Log0L/QvtC60LDQt9Cw0L3QviDQsiDQv9GA0LjQvNC10YDQtSAo0LfQtNC10YHRjCBuPTUpOgoKU2FtcGxlIElucHV0Ogo1CgpTYW1wbGUgT3V0cHV0OgoxIDIgMyA0IDUKMTYgMTcgMTggMTkgNgoxNSAyNCAyNSAyMCA3CjE0IDIzIDIyIDIxIDgKMTMgMTIgMTEgMTAgOQonJycKCm4gPSBpbnQgKGlucHV0ICgpKQptYXRyaXggPSBbWzAgZm9yIGogaW4gcmFuZ2UobildIGZvciBpIGluIHJhbmdlKG4pXQoKbWF0cml4WzBdWzBdID0gMQpjdXJfaSA9IDAKY3VyX2ogPSAwCnN0ZXBfaSA9IDAKc3RlcF9qID0gMQppID0gMQoKd2hpbGUgKGkgIT0gbipuKToKCWkgKz0gMQoJaWYgKHN0ZXBfaSA9PSAxKToKCQlpZiAoKGN1cl9pICsgc3RlcF9pID09IG4pIG9yIChtYXRyaXhbY3VyX2kgKyBzdGVwX2ldW2N1cl9qXSAhPSAwKSk6CgkJCXN0ZXBfaSA9IDAKCQkJc3RlcF9qID0gLTEKCQkJY3VyX2ogKz0gc3RlcF9qCgkJZWxzZToKCQkJY3VyX2kgKz0gc3RlcF9pCgllbGlmIChzdGVwX2kgPT0gLTEpOgoJCWlmICgoY3VyX2kgKyBzdGVwX2kgPT0gLTEpIG9yIChtYXRyaXhbY3VyX2kgKyBzdGVwX2ldW2N1cl9qXSAhPSAwKSk6CgkJCXN0ZXBfaSA9IDAKCQkJc3RlcF9qID0gMQoJCQljdXJfaiArPSBzdGVwX2oKCQllbHNlOgoJCQljdXJfaSArPSBzdGVwX2kKCWVsaWYgKHN0ZXBfaiA9PSAxKToKCQlpZiAoKGN1cl9qICsgc3RlcF9qID09IG4pIG9yIChtYXRyaXhbY3VyX2ldW2N1cl9qICsgc3RlcF9qXSAhPSAwKSk6CgkJCXN0ZXBfaiA9IDAKCQkJc3RlcF9pID0gMQoJCQljdXJfaSArPSBzdGVwX2kKCQllbHNlOgoJCQljdXJfaiArPSBzdGVwX2oKCWVsaWYgKHN0ZXBfaiA9PSAtMSk6CgkJaWYgKChjdXJfaiArIHN0ZXBfaiA9PSAtMSkgb3IgKG1hdHJpeFtjdXJfaV1bY3VyX2orc3RlcF9qXSAhPSAwKSk6CgkJCXN0ZXBfaiA9IDAKCQkJc3RlcF9pID0gLTEKCQkJY3VyX2kgKz0gc3RlcF9pCgkJZWxzZToKCQkJY3VyX2ogKz0gc3RlcF9qCgoJbWF0cml4W2N1cl9pXVtjdXJfal0gPSBpCgkJCgpmb3IgaSBpbiByYW5nZSAobik6Cglmb3IgaiBpbiByYW5nZSAobik6CgkJcHJpbnQgKG1hdHJpeFtpXVtqXSwgZW5kPScgJykKCXByaW50KCk=