#include <stdio.h>

// ungleich Null, wenn Koordinate (x,y) Teil eines Kreuzes der Größe size * size ist
int is_cross(unsigned x, unsigned y, unsigned size)
{
	// Ränder
	if (x == 0 || y == 0 || x == size - 1 || y == size - 1)
		return 1;
	
	// Mittleres Kreuz
	unsigned mitte = (size - 1) / 2;
	if (x == mitte || x == mitte + 1 || y == mitte || y == mitte + 1)
		return 1;
		
	// Alles andere gehört nicht zum Kreuz
	return 0;
}

int main(void) 
{
	for(int i = 0; i < 5; ++i)
	{
		unsigned size;
		scanf("%u", &size);
	
		// Systematisch alle Felder durchgehen
		for(unsigned y = 0; y < size; ++y)
		{
			for(unsigned x = 0; x < size; ++x)
			{
				// jedes Feld passend malen
				if(is_cross(x, y, size))
					putchar('+');
				else
					putchar(' ');
			}
			putchar('\n');
		}
		putchar('\n');
	}
	return 0;
}
