#include <iostream>
using namespace std;
int n;
int dx[] = {0, -1, -1, -1,  0, 0,  1, 1, 1};
int dy[] = {0, -1,  0,  1, -1, 1, -1, 0, 1};
char a[20][20], b[20][20];
void print()
{
    for (int i = 1; i <= 16; i++)
    {
        for (int j = 1; j <= 16; j++)
        {
            cout << a[i][j];
        }
        cout << "\n";
    }
}
int main()
{
    freopen("kang.in", "r", stdin);
	freopen("kang.out", "w", stdout);

    cin >> n;
    for (int i = 0; i <= 17; i++)
    {
        for (int j = 0; j <= 17; j++)
        {
            if (i == 0 || i == 17 || j == 0 || j == 17)
            {
                a[i][j] = '.';
                b[i][j] = '.';
            }
            else
            {
                cin >> a[i][j];
                b[i][j] = a[i][j];
            }
        }
    }

    for (int ti = 1; ti <= n; ti++)
    {
        for (int i = 1; i <= 16; i++)
        {
            for (int j = 1; j <= 16; j++)
            {
                int ln = 0;
                for (int cnt = 1; cnt <= 8; cnt++)
                {
                    int nx = i + dx[cnt];
                    int ny = j + dy[cnt];
                    if (a[nx][ny] == '#')ln++;
                }

                if (a[i][j] == '.')
                {
                    if (ln == 3)b[i][j] = '#';
                }
                else
                {
                    if (ln < 2 || ln > 3)b[i][j] = '.';
                }
            }
        }
        for (int i = 1; i <= 16; i++)
            for (int j = 1; j <= 16; j++)
                a[i][j] = b[i][j];
    }

    print();
    return 0;
}