import java.io.*;
import java.util.*;

public class Q4 {
	
	public static void main(String[] args) {
		try {
			Scanner a = new Scanner(new File("DATA4.txt"));
			PrintStream o = new PrintStream(new File("OUT4.txt"));
			
			String[][] sArr = new String[100][100];
			
			for(int z = 0; z < 5; z++) {
				sArr = new String[100][100];
				int in = a.nextInt();
				int dir = 2;
				int x = 0;
				int y = 0;
				int mx = 0;
				int my = 0;
				for(int i = 0; i <= in; i++) {
					sArr[x][y] = Integer.toString(i);
					if(i > in) {
						break;
					}
					switch(dir) {
						case 0:
							if(y-1 < 0 || sArr[x][y-1] == null) {
								dir = (dir+1)%4;
							}
						break;
						case 1:
							if(x-1 < 0 || sArr[x-1][y] == null) {
								dir++;
							}
						break;
						case 2:
							if(sArr[x][y+1] == null) {
								dir++;
							}
						break;
						case 3:
							if(sArr[x+1][y] == null) {
								dir = (dir+1)%4;
							}
						break;
					}
					switch(dir) {
						case 0:
							x++;
							if(x > mx && !(i+1 > in)) {
								mx++;
							}
						break;
						case 1:
							if(y-1 < 0 && !(i+1 > in)) {
								sArr = sDown(sArr);
								y++;
								my++;
							}
							y--;
						break;
						case 2:
							if(x-1 < 0 && !(i+1 > in)) {
								sArr = sRight(sArr);
								x++;
								mx++;
							}
							x--;
						break;
						case 3:
							
							y++;
							if(y > my && !(i+1 > in)) {
								my++;
							}
						break;
					}
				}
				
				for(int y1 = 0; y1 <= my; y1++) {
					for(int x1 = 0; x1 <= mx; x1++) {
						if(sArr[x1][y1] == null) {
							sArr[x1][y1] = ".";
						}
						o.print(sArr[x1][y1]);
					}
					o.println("");
				}
			}
			
			
			
			System.exit(0);
		} catch (IOException e) { 
			System.out.println("Error" + e);
		}
	}
	
	public static String[][] sDown(String[][] s) {
		String[][] so = new String[s.length][s.length];
		for(int y = 1; y < s.length; y++) {
			for(int x = 0; x < s.length; x++) {
				so[x][y] = s[x][y-1];
			}
		}
		return so;
	}
	
	public static String[][] sRight(String[][] s) {
		String[][] so = new String[s.length][s.length];
		for(int y = 0; y < s.length; y++) {
			for(int x = 1; x < s.length; x++) {
				so[x][y] = s[x-1][y];
			}
		}
		return so;
	}

	
}

