Submit solution


Points: 1
Time limit: 1.0s
Memory limit: 64M

Problem type

Mali Perica voli da igra šah, ali često gubi stvari i zaboravlja pravila. Roditelji su mu zbog toga kupili mnogo garnitura i tabli za šah, međutim on ih je sve izgubio, osim topova koji su mu omiljene figure pa ih zbog toga drži u posebnoj fioci.

Perica je odlučio da se igra i pokušao da se seti pravila šaha, za početak seća se da je postojala tabla pa je zbog toga na kartonu nacrtao tablu sa N vrsta i M kolona. Odlučio je da svako polje ili ostavi prazno ili da u njega stavi tačno jednu od šest vrsta igračaka kojih najviše ima, naime ili autić ili kockicu na kojoj je napisan neki od brojeva 0 do 4.

Nažalost, jedini deo šaha kog se Perica seća, sem pomenutih, je način na koji se pomera top, to mu je ipak omiljena figura (za one koji ni to ne znaju, top se u jednom potezu može pomeriti na neko drugo polje u svojoj koloni ili vrsti). Zato je odlučio da postavi izvestan broj topova na prazna polja svoje table i pomera ih, naravno bez podizanja sa table, pa top ne može da pređe preko polja na kom se već nalazi neka igračka. Dok je to činio shvatio je da igra nije previše zanimljiva ako je na tabli previše topova, jer se često nalaze jedan drugome na putu, a ni ako je na tabli premalo topova jer u tom slučaju nema čime da se igra, pa je uveo sledeća pravila:

  1. Ni jedan top se ne sme nalaziti na polju na koje drugi top može da dođe u jednom potezu.
  2. Ukoliko je na nekom polju kockica sa brojem K, na njemu susednim poljima mora da se nalazi tačno K topova. (Polja su susedna ako dele stranicu, dakle svako polje ima najviše četiri susedna polja.)
  3. Za svako polje koje je na početku igre bilo prazno mora na tabli postojati top koji u najviše jednom potezu može da dođe na to polje.

Perica je brzo primetio da pre nego što počne da se igra mora prvo da pronađe početnu postavku topova, ukoliko takva uopšte postoji, a koja poštuje navedena pravila za njegovu tablu. Vaš zadatak je da pomognete Perici da počne da se igra tako što ćete za zadatu početnu tablu pronaći postavku topova koja poštuje sva zadata pravila, ili zaključiti da takva tabla ne postoji.

Opis ulaza

U prvoj liniji ulaza nalaze se dva cela broja, N - broj vrsta i M - broj kolona table. U svakoj od narednih N linija ulaza nalazi se po M znakova ('.', '#', '0', '1', '2', '3' ili '4'), koji označavaju da se u odgovarajućem polju '.' - ne nalazi ništa (prazno je) '#' - nalazi autić '0', '1', '2', '3' ili '4' - nalazi kockica koja pokazuje odgovarajući broj.

Opis izlaza

Ukoliko tražena konfiguracija ne postoji ispisati -1, dok ukoliko postoji potrebno je ispisati matricu dimenzija ulazne matrice, čija su polja ista kao odgovarajuća polja u ulaznoj matrici, s tim da se prazno polje, '.', može zameniti sa 'C' ukoliko na to polje treba staviti topa u postavci.

Primer 1

Ulaz
5 6
.#01.1
2.....
0.....
......
#...2.
Izlaz
C#01C1
2C....
0.....
..C...
#..C2C

Primer 2

Ulaz
2 2
0.
.2
Izlaz
-1

Ograničenja

U svim primerima važi 1 \leq N, M \leq 10.

  • U test primerima vrednim 10 poena: Sva polja su prazna na početku.
  • U test primerima vrednim 20 poena: 1 \leq N, M \leq 2.
  • U test primerima vrednim 30 poena: 1 \leq N, M \leq 5.
  • U test primerima vrednim 40 poena: Nema dodatnih ograničenja.

Comments

There are no comments at the moment.