#include <stdio.h>

int x, y, awal_i, awal_j, akhir_i, akhir_j, min = 20 * 20, tanda = 0;
char maze[20][20];

void minimum_maze(int a, int b, int step); // jarak minimum
void cetak_maze(int a, int b, int step);   // cetak jarak minimum

int main()
{
    scanf("%d %d", &x, &y);
    for (int i = 1; i <= y; i++)
    {
        for (int j = 1; j <= x; j++)
        {
            scanf(" %c", &maze[i][j]);
            if (maze[i][j] == 'A')
            {
                awal_i = i;
                awal_j = j;
            }
            if (maze[i][j] == 'B')
            {
                akhir_i = i;
                akhir_j = j;
            }
        }
    }
    minimum_maze(awal_i, awal_j, 0);
    cetak_maze(awal_i, awal_j, 0);
}

void minimum_maze(int a, int b, int step)
{
    if (a < 0 || b < 0 || a > y || b > x)
    {
        return;
    }
    if (maze[a][b] == '#')
    {
        return;
    }
    if (a == akhir_i && b == akhir_j)
    {
        if (step < min)
        {
            min = step;
        }
    }
    maze[a][b] = '#';
    minimum_maze(a - 1, b, step + 1);
    minimum_maze(a + 1, b, step + 1);
    minimum_maze(a, b - 1, step + 1);
    minimum_maze(a, b + 1, step + 1);
    maze[a][b] = '.';
}

void cetak_maze(int a, int b, int step)
{
    if (tanda)
    {
        return;
    }
    if (a < 0 || b < 0 || a > y || b > x)
    {
        return;
    }
    if (maze[a][b] == '#' || maze[a][b] == 'x')
    {
        return;
    }
    maze[a][b] = 'x';
    cetak_maze(a - 1, b, step + 1);
    cetak_maze(a + 1, b, step + 1);
    cetak_maze(a, b - 1, step + 1);
    cetak_maze(a, b + 1, step + 1);
    maze[a][b] = '.';
    if (a == akhir_i && b == akhir_j)
    {
        if (step != min)
        {
            return;
        }
        for (int i = 1; i <= y; i++)
        {
            for (int j = 1; j <= x; j++)
            {
                if (i == awal_i && j == awal_j)
                {
                    printf("A");
                }
                else if (i == akhir_i && j == akhir_j)
                {
                    printf("B");
                }
                else
                {
                    printf("%c", maze[i][j]);
                }
                if (j == x)
                {
                    printf("\n");
                }
            }
        }
        tanda = 1;
    }
}