Poravnavanje niski

Niske \(s\) i \(t\) se sastoje od slova i tačaka. Niska \(t\) je kraća od niske \(s\) i može se poravnati sa niskom \(s\) tako što se njen prvi karakter postavi ispod bilo kog karaktera niske \(s\) tako da se cela niska \(t\) poredi sa podniskom niske \(s\) koja počinje od tog karaktera. Na primer, niske \(s\) i \(t\) koje su jednake ab.c.b i a.b se mogu poravnatni na sledeće načine:

ab.c.b. ab.c.b. ab.c.b. ab.c.b. a.b. a.b. a.b. a.b.

Napisati program koji za svako moguće poravnanje niske \(s\) i \(t\) određuje broj tačaka koji im se poklapaju.

Opis ulaza

Sa standardnog ulaza se učitava niska \(s\) (dužine najviše \(10^5\) karaktera) i niska \(t\) dužine najviše \(10^4\) karaktera).

Opis izlaza

Na standardni izlaz ispisati broj poklopljenih tačaka za svako poravnavanje niske \(s\) i \(t\).

Primer

Ulaz

ab.c..ab..a.a.baa.a.c..a b.ac..b.

Izlaz

2 3 1 2 4 1 2 2 2 1 2 0 3 1 2 2 2

Objašnjenje

U prvom poravnavanju poklapaju se dve tačke.

ab.c..ab..a.a.baa.a.c..a b.ac..b.

U drugom poravnavanju poklapaju se tri tačke.

ab.c..ab..a.a.baa.a.c..a b.ac..b.

U trećem poravnavanju poklapa se jedna tačka.

ab.c..ab..a.a.baa.a.c..a b.ac..b.

Slično se broje tačke i kod ostalih poravnavanja.

Rešenje