#include <iostream>
#include <iomanip>

static size_t count_digits(size_t x)
{
	size_t res = 0;
	while (x > 0) {
		++res;
		x /= 10;
	}
	return res;
}

int main() {
	const size_t coils = 7;
	const size_t size = coils * 2 + 1;
    const size_t digits = count_digits(size * size + 1);

    for (size_t y = 0; y < size; ++y)
    {
    	for (size_t x = 0; x < size; ++x)
    	{
    		const size_t dx = x > coils ? x - coils : coils - x;
    		const size_t dy = y > coils ? y - coils : coils - y;
    		const size_t coil = std::max(dx, dy);
    		
    		const size_t side_size = coil * 2;
    		const size_t coil_start = coil > 0 ? (coil * 2 - 1)  * (coil * 2 - 1) + 1 : 1;
    		
    		// quadrants: 0 - right, 1 - bottom, 2 - left, 3 - top
    		size_t quadrant = 0, offset = 0;
    		if (x > coils && y >= size - x && y <= x) { quadrant = 0; offset = y - (size - x); }
    		if (y > coils && x >= size - y - 1 && x < y) { quadrant = 1; offset = y - x - 1; }
    		if (x < coils && y >= x && y < size - x - 1) { quadrant = 2;  offset = (size - x - 2) - y; }
    		if (y < coils && x > y && x < size - y) { quadrant = 3; offset = x - y - 1; }
    		
    		const size_t n = coil_start + side_size * quadrant + offset;
    		
    		std::cout << std::setw(digits) << n << " ";
    	}
    	std::cout << std::endl;
    }
    
	return 0;
}