package PATTERNS;
import java.util.Scanner;
public class arrow {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int nsp = n - 1;
int nst = 1;
int rows = 1;
int nsp2 = 1;
int nst2 = 2;
int dnsp = 2;
int dnst = (n - 1) / 2;
int insp = (n - 1) / 2;
int inst = (n - 1) / 2;
int var=1;
int oppvar=1;
while (rows <= n) {
if (rows <= (n + 1) / 2) {
// for space
for (int csp = 1; csp <= nsp; csp++) {
System.out.print(" " + " ");
}
nsp = nsp - 2;
// for numbers
oppvar=rows;
for (int cst = 1; cst <= nst; cst++) {
System.out.print(oppvar + " ");
oppvar--;
}
nst = nst + 1;
}
// for inner pattern
if (rows > 1 && rows <= (n + 1) / 2) {
// inner space
for (int csp = 1; csp <= nsp2; csp++) {
System.out.print(" " + " ");
}
nsp2 = nsp2 + 2;
// inner numbers
var=1;
for (int cst = 1; cst <= nst2; cst++) {
System.out.print(var + " ");
var++;
}
nst2 = nst2 + 1;
}
// downward pattern
if (rows > (n + 1) / 2 && rows <=n) {
// for space
for (int csp = 1; csp <= dnsp; csp++) {
System.out.print(" " + " ");
}
dnsp = dnsp + 2;
// for numbers
if(rows<n)
{
oppvar=(n-1)/2;
for (int cst = 1; cst <= dnst; cst++) {
System.out.print(oppvar + " ");
oppvar--;
}
dnst = dnst - 1;
}
// inner space
for (int csp = 1; csp <= insp; csp++) {
System.out.print(" " + " ");
}
insp = insp - 2;
if(rows<=n) {
var=1;
for(int cst=1;cst<=inst;cst++)
{
System.out.print(var+" ");
var++;
}
inst=inst-1;
}
}
// preparation
System.out.println();
rows++;
}
}
}