#include <cstdio>
#include <cstring>
#include <cctype>
#include <cmath>
char *s = new char[1000003];
int a[1003][1003];
int ans;
void op(int l1, int c1, int l2, int c2) {
if(*s != '*') {
while(isdigit(*s))
s++;
for(int i = l1;i <= l2;i++)
for(int j = c1;j <= c2;j++)
a[i][j] = *s;
s++;
return;
}
else {
ans++;
int midl, midc;
s++;
midl = (l1 + l2) / 2;
midc = (c1 + c2) / 2;
if(l1 == l2) {
op(l1, c1, l1, midc);
op(l1, midc + 1, l1, c2);
}
else if(c1 == c2) {
op(l1, c1, midl, c1);
op(midl + 1, c1, l2, c1);
}
else {
op(l1, c1, midl, midc);
op(l1, midc + 1, midl, c2);
op(midl + 1, c1, l2, midc);
op(midl + 1, midc + 1, l2, c2);
}
}
}
int main() {
FILE *fin = fopen("compresie.in", "r");
FILE *fout = fopen("compresie.out", "w");
fgets(s, 1000001, fin);
int n = strlen(s) - 1;
int i = 0, len = 0;
while(i < n) {
int nr = 0;
if(isdigit(s[i])) {
while(i < n && isdigit(s[i]))
nr = nr * 10 + s[i] - '0', i++;
i++;
}
else if(isalpha(s[i])) {
nr++;
i++;
}
else {
while(i < n && !isdigit(s[i]) && !isalpha(s[i]))
i++;
}
len += nr;
}
len = sqrt(len);
op(1, 1, len, len);
fprintf(fout, "%d\n", ans);
for(int i = 1;i <= len;i++) {
for(int j = 1;j <= len;j++)
fputc(a[i][j], fout);
fputc('\n', fout);
}
return 0;
}