#!/usr/bin/perl
# 6N Nonogram

while ($sk=<>){

# eilučių sudėjimas į masyvą: 
for (0..$sk-1){
    $skait=<>;
    @mas=(@mas,$skait);
}

# subrutina, verčianti pvz.  XX..X → 2 1
sub lineSolver {
    
    @ats=();
    for $k(0..@_-1){
    $_=shift;  # pašiftinamas masyvas @_, kuris yra įėjusio (pvz. @mas) kopija, t.y. gaunama eilutė. 
    s/\b(X+)\b/length$1/ge;  # eilutėje ieškoma iš eilės einančių 1 ar daugiau IKSŲ. Apskliaustas
                             # surastas reiškinys išsisaugo į $1. Tada IKSŲ eilučių vietose įrašomas 
                             # iš IKSŲ sudarytos eilutės ilgis (apskaičiuoja modifikatorius "e").
                             # Operacija kartojama vieną kartą praeinant visą eilutę K→D (modif. "g").
    s/\D+/ /g;      # visos iš eilės einančių 'ne skaitmenų' eilutės pakeičiamos tarpais.
    s/^ //;         # eilutės pradžioje panaikinamas tarpas, jeigu yra.
    s/ $//;         # eilutės pabaigoje panaikinamas tarpas, jeigu yra.
    s/^$/0/;        # jeigu eilutė tuščia, joje įrašomas 0.
    $_.="\n";
    $ats[$k]=$_;    # apdorota eilutė įrašoma į masyvą @ats, kaip jo k-tasis elementas.
    }
}

lineSolver(@mas);
print @ats;

# Dvigubas ciklas. Karpo po n-tąją visų eilučių raidę, suklijuodamas jas į nają eilutę naujam masyvui:
for $j(0..$sk-1){
    foreach $i(0..$sk-1){
        chomp($mas[$i]);    # nukerpa gale "\n", jeigu toks yra.(Efektyviau būtų iškelt :) )
        $sam[$sk-1-$j].=chop($mas[$i]);  # nukerpa gale 1 simbolį, ir priklijuoja jį prie masyvo @sam elemento.
    }
$sam[$sk-1-$j].="\n"; # kiekvienam sukonstruotam stulpeliui gale priklijuojamas "\n".
}

lineSolver(@sam);
print @ats;

# masyvų išvalymas:
@mas=();
@sam=();
}
