Heb je ooit het spelletje mijnenveger1 gespeeld? Het wordt meegeleverd met een besturingssysteem waarvan de naam ons nu niet direct te binnen schiet. Nu ja, de bedoeling van het spel is te ontdekken waar alle mijnen verborgen liggen in een rechthoekig $$m\times n$$ speelveld. Om je te helpen, worden getallen in de hokjes van het speelveld weergegeven. Deze geven aan hoeveel mijnen er in aangrenzende hokjes liggen. Hierbij worden zowel horizontaal, verticaal als diagonaal aangrenzende hokjes in rekening gebracht. Veronderstel bijvoorbeeld dat er in een $$4\times 4$$ speelveld twee mijnen verborgen liggen (hun locatie wordt aangegeven met een sterretje):

*...
....
.*..
....

Indien we nu in de lege hokjes (aangegeven met een puntje) aangeven hoeveel mijnen er in aangrenzende hokjes liggen, dan krijgen we de volgende voorstelling van het speelveld:

*100
2210
1*10
1110

Zoals je al zou kunnen opgemerkt hebben, heeft elk hokje ten hoogste 8 aangrenzende hokjes.

Invoer

De invoer bestaan uit $$t$$ testgevallen ($$t \leq 100$$). De eerste regel van de invoer bevat een natuurlijk getal $$t$$. Daarna volgt de omschrijving van de $$t$$ testgevallen. De eerste regel van de omschrijving van een testgeval bestaat uit twee natuurlijke getallen $$m$$ en $$n$$ ($$0 < m, n \leq 100$$), die respectievelijk het aantal rijen en het aantal kolommen van het speelveld aangeven. Daarna volgen $$m$$ regels die elk exact $$n$$ lettertekens bevatten die aangeven of het corresponderende rooster een mijn bevat (*) of niet (.).

Uitvoer

Schrijf voor elk testgeval het speelveld uit in hetzelfde formaat als in de invoer, maar waarbij elk hokje dat geen mijn bevat nu wordt voorgesteld door een cijfer dat aangeeft hoeveel aangrenzende hokjes er een mijn bevatten. Zorg ervoor dat er een lege regel staat tussen opeenvolgende speelvelden.

Voorbeeld

Invoer:

2
4 4
*...
....
.*..
....
3 5
**...
.....
.*...

Uitvoer:

*100
2210
1*10
1110

**100
33200
1*100