//* Problem  : 2946 - OKVIRI
//* Contest  : acm.tju.edu.cn
//* Origin   : 
//* Type     : Solution
//* Date     : 2008.04.29
//* Author   : alt
//* Language : C++
//* Compiler : Microsoft Visual C++ 6.0
//* Algoritm : 

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>

#include <algorithm>
#include <vector>
#include <queue>
#include <string>
#include <iostream>
using namespace std;
#define int64 long long

#define PI 2*acos(0.0)

char a[5][128] = {'.'}, s[32];

void put1(int k, char c, char cc)
{
	int x = 2, y = 2 + k * 4;
	a[x][y] = c;
	a[0][y] = a[4][y] = a[2][y-2] = a[2][y+2] = cc;
	a[1][y-1] = a[1][y+1] = a[3][y-1] = a[3][y+1] = cc;
}

int main()
{
#ifdef _DEBUG
	freopen("1366", "r", stdin);
#endif
	memset(a, '.', sizeof(a));
	scanf("%s", s);
	for (int i = 0; i < strlen(s); i++)
		if (i % 3 != 2)
			put1(i, s[i], '#');
	for (int i = 0; i < strlen(s); i++)
		if (i % 3 == 2)
			put1(i, s[i], '*');
	a[0][strlen(s) * 4 + 1] = 0;
	a[1][strlen(s) * 4 + 1] = 0;
	a[2][strlen(s) * 4 + 1] = 0;
	a[3][strlen(s) * 4 + 1] = 0;
	a[4][strlen(s) * 4 + 1] = 0;
	printf("%s\n", a[0]);
	printf("%s\n", a[1]);
	printf("%s\n", a[2]);
	printf("%s\n", a[3]);
	printf("%s\n", a[4]);
	return 0;
}

