#include<stdio.h>
#include<string.h>
int main()
{
int r, c, kase = 0, first = 1;
int a[15][15];
char s[15][15];
while (scanf("%d", &r) == 1 && r) {
int cnt = 0;
memset(a, 0, sizeof(a));
scanf("%d", &c);
for (int i = 0; i < r; ++i) {
scanf("%s", s[i]);
for (int j = 0; j < c; ++j) {
if (s[i][j] == '*')
continue;
if (i - 1 < 0 || s[i - 1][j] == '*' || j - 1 < 0 || s[i][j - 1] == '*') {
a[i][j] = ++cnt;
}
}
}
if (first)
first = 0;
else
printf("\n");
printf("puzzle #%d:\n", ++kase);
printf("Across\n");
for (int i = 0; i < r; ++i) {
for (int j = 0; j < c; ++j) {
if (a[i][j]) {
printf("%3d.", a[i][j]);
do {
printf("%c", s[i][j]);
j++;
} while (j < c && s[i][j] != '*');
printf("\n");
}
}
}
printf("Down\n");
for (int i = 0; i < r; ++i) {
for (int j = 0; j < c; ++j) {
if (a[i][j] && (i - 1 < 0 || s[i - 1][j] == '*')) {
printf("%3d.", a[i][j]);
int k = i;
do {
printf("%c", s[k][j]);
k++;
} while (k < r && s[k][j] != '*');
printf("\n");
}
}
}
}
return 0;
}