//6870
#include <stdio.h>
#include <vector>
using namespace std;

int n, m;
char nemonemologic[35][35];
vector<int> row[35], col[35];

void f(int r, int ptr) {
    if(r>n) {
        return;
    }
    
    int ptr, len=0, cnt[35]={}; //len : 채워진 것 개수, cnt : 채워진 쌍
    for(ptr=1; nemonemologic[r][ptr]&&ptr<=m; ptr++) {
        if(nemonemologic[r][ptr]=='*') cnt[len]++;
        else len++;
    }
    if(ptr>m) f(r+1, 1);
    for(int j=len; j<row[r].size(); j++) {
        for(int k=0; k<row[r][j]-cnt[j]; k++) {
            if(nemonemologic[r][ptr]=='.') return;
            nemonemologic[r][ptr++]='*';
        }
        if(nemonemologic[r][ptr]=='*') return;
        nemonemologic[r][ptr++]='.';
    }
}

int main() {
    scanf("%d %d", &n, &m);

    for(int i=1; i<=n; i++) {
        int sum=0;
        while(1) {
            int a;
            scanf("%d", &a);
            if(!a) break;

            row[i].push_back(a);
            sum+=a;
        }
        if(sum==0) {
            for(int j=1; j<=m; j++) nemonemologic[i][j]='.';
        }
        else if(sum+row[i].size()-1==m) {
            int ptr=1;
            for(int j=0; j<row[i].size(); j++) {
                int k=row[i][j];
                while(k) {
                    nemonemologic[i][ptr++]='*';
                    k--;
                }
                nemonemologic[i][ptr++]='.';
            }
        }
        else if(row[i].size()==1 && sum>m/2) {
            for(int j=1; j<=sum; j++) {
                if(1<=m-j+1&&m-j+1<=sum) nemonemologic[i][m-j+1]='*';
            }
        }
    }
    
    for(int i=1; i<=m; i++) {
        int sum=0;
        while(1) {
            int a;
            scanf("%d", &a);
            if(!a) break;

            col[i].push_back(a);
            sum+=a;
        }
        if(sum==0) {
            for(int j=1; j<=m; j++) nemonemologic[j][i]='.';
        }
        else if(sum+col[i].size()-1==n) {
            int ptr=1;
            for(int j=0; j<col[i].size(); j++) {
                int k=col[i][j];
                while(k) {
                    nemonemologic[ptr++][i]='*';
                    k--;
                }
                nemonemologic[ptr++][i]='.';
            }
        }
        else if(col[i].size()==1 && sum>n/2) {
            for(int j=1; j<=sum; j++) {
                if(1<=n-j+1&&n-j+1<=sum) {
                    //printf("(%d,%d|%d)\n", i, j, n-j+1);
                    nemonemologic[n-j+1][i]='*';
                }
            }
        }
    }

    f(1, 1);

    for(int i=1; i<=n; i++) {
        printf("%d : ",i);
        for(int j=1; j<=m; j++) {
            if(nemonemologic[i][j]=='\0') printf("_");
            else printf("%c", nemonemologic[i][j]);
        }
        puts("");
    }
}

/*
//input
[1]
4
4
2 1 0
3 0
3 0
1 1 0
4 0
3 0
3 0
1 0

[2]
4
7
2 2 0
5 0
5 0
2 2 0
1 1 0
1 1 0
2 0
2 0
4 0
4 0
2 0
*/
    

Intégrer sur un site web

Pour intégrer ce projet à votre site web, copiez le code suivant et collez-le dans le HTML de votre site web :