Šablonai


Pradinių duomenų failas:
sablonai.in  
Rezultatų failas:
sablonai.out  
Laiko apribojimas:
1 s.  
Atminties apribojimas:
16 Mb.  

Užduotis

Šablonu laikysime simbolių eilutę, kuri gali būti sudaryta iš lotyniškosios abėcėlės mažųjų ir didžiųjų raidžių, skaitmenų, žvaigždučių (*) bei klaustukų (?) simbolių. Žvaigždutė reikš bet kokią simbolių (simbolis x – tai lotyniškosios abėcėlės mažoji ar didžioji raidė arba skaitmuo) seką (galima ir tuščia seka), klaustukas – bet kurią vieną raidę arba skaitmenį.

Suprantama, kad pagal vieną šabloną galima gauti daugybę įvairių eilučių, pavyzdžiui, šablonui *BRA?A tinka eilutės 00c001BRABA, BRACA, vBRA1A ir taip toliau, tačiau, pavyzdžiui, netinka eilutės BRaCA, xBRATKA.

Du šablonai laikomi ekvivalenčiais, jei bet kuri pirmajam šablonui tinkanti eilutė tinka ir antrajam šablonui, o bet kuri antrajam šablonui tinkanti eilutė tinka ir pirmajam.

Duoti du šablonai. Parašykite programą, kuri patikrintų, ar šie šablonai ekvivalentūs.

Pradiniai duomenys

Pradinių duomenų failą sudaro trys eilutės. Pirmoje eilutėje įrašyti du sveikieji skaičiai: pirmojo bei antrojo šablonų ilgiai \(L_{1}\) ir \(L_{2}\). Kiekviename šablone gali būti nuo 1 iki 500 simbolių: 1 <= \(L_{1}\), \(L_{2}\) <= 500.

Antroje eilutėje įrašytas pirmasis šablonas (\(L_{1}\) simbolių be tarpų seka), trečioje – antrasis šablonas (\(L_{2}\) simbolių be tarpų seka).

Rezultatai

Jūsų programa į rezultatų failą turi įrašyti vieną eilutę: TAIP, jei šablonai ekvivalentūs, ir NE priešingu atveju.

Pavyzdžiai

Pradiniai duomenys Rezultatai
5 7
bra*a
bra***a
TAIP