#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

// supported N = 26
char canvas[ 26 * 2 - 1 ][ 26 * 2 - 1 ];
 
void draw_triangle( int n, char c, int x, int y ) {
        
    int line_length = n * 2 - 1;
    
    // draw n lines
    for( ; 0 < n; --n ) {
        // draw a line with specific length
        for( int len = 0; len < line_length; ++len )
        {
            canvas[ y ][ x + len ] = c;
        }
        --y, ++x;
        line_length -= 2;
    }
}
 
void draw_upside_down_triangle( int n, char c, int x, int y ) {
        
    int line_length = n * 2 - 1;
    
    // draw n lines
    for( ; 0 < n; --n ) {
        // draw a line with specific length
        for( int len = 0; len < line_length; ++len )
        {
            canvas[ y ][ x + len ] = c;
        }
        ++y, ++x;
        line_length -= 2;
    }
}
 
 
int main() {
    
    int n;
    scanf( "%d", &n );
    assert( 0 < n && n <= 26 );
    
    int used_width = n * 2 - 1;
    int used_height = n * 2 - 1;
    
    // clear canvas content
    for( int row = 0; row < used_height; ++row ) {
        for( int col = 0; col < used_width; ++col ) {
            canvas[ row ][ col ] = ' ';
        }
    }
    
    int start_x = 0,
        start_y = n - 1;
    char c = 'A';
    for( ; 0 < n; --n ) {
        draw_triangle( n, c, start_x, start_y );
        draw_upside_down_triangle( n, c, start_x, start_y );
        ++start_x;
        ++c;
    }
    
    // print the canvas
    for( int row = 0; row < used_height; ++row ) {
        for( int col = 0; col < used_width; ++col ) {
            printf( "%c", canvas[ row ][ col ] );
        }
        printf("\n");
    }
    
    return EXIT_SUCCESS;
}