from datetime import datetime
class TheLoai:
def __init__(self, maTL, tenTL) -> None:
self.maTL = f'TL{maTL:03d}'
self.tenTL = tenTL
class BoPhim:
def __init__(self, maPhim, maTL, ngayChieu, tenPhim, soTap, theLoai) -> None:
self.maPhim = f'P{maPhim:03d}'
self.maTL = maTL
self.ngayChieu = datetime.strptime(ngayChieu, '%d/%m/%Y')
self.tenPhim = tenPhim
self.soTap = soTap
self.theLoai = theLoai
def __str__(self) -> str:
return f'{self.maPhim} {self.theLoai.tenTL} ' + self.ngayChieu.strftime('%d/%m/%Y') + f' {self.tenPhim} {self.soTap}'
if __name__ == '__main__':
n, m = map(int, input().split())
a = []
for i in range(n):
a.append(TheLoai(i + 1, input().strip()))
b = []
for i in range(m):
b.append(BoPhim(i + 1, input().strip(), input().strip(), input().strip(), int(input()), None))
for it in b:
for x in a:
if it.maTL == x.maTL:
it.theLoai = x
break
b.sort(key = lambda x : (x.ngayChieu, x.tenPhim, -x.soTap))
for x in b:
print(x)
ZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKCgpjbGFzcyBUaGVMb2FpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIG1hVEwsIHRlblRMKSAtPiBOb25lOgogICAgICAgIHNlbGYubWFUTCA9IGYnVEx7bWFUTDowM2R9JwogICAgICAgIHNlbGYudGVuVEwgPSB0ZW5UTAoKCmNsYXNzIEJvUGhpbToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtYVBoaW0sIG1hVEwsIG5nYXlDaGlldSwgdGVuUGhpbSwgc29UYXAsIHRoZUxvYWkpIC0+IE5vbmU6CiAgICAgICAgc2VsZi5tYVBoaW0gPSBmJ1B7bWFQaGltOjAzZH0nCiAgICAgICAgc2VsZi5tYVRMID0gbWFUTAogICAgICAgIHNlbGYubmdheUNoaWV1ID0gZGF0ZXRpbWUuc3RycHRpbWUobmdheUNoaWV1LCAnJWQvJW0vJVknKQogICAgICAgIHNlbGYudGVuUGhpbSA9IHRlblBoaW0KICAgICAgICBzZWxmLnNvVGFwID0gc29UYXAKICAgICAgICBzZWxmLnRoZUxvYWkgPSB0aGVMb2FpCgogICAgZGVmIF9fc3RyX18oc2VsZikgLT4gc3RyOgogICAgICAgIHJldHVybiBmJ3tzZWxmLm1hUGhpbX0ge3NlbGYudGhlTG9haS50ZW5UTH0gJyArIHNlbGYubmdheUNoaWV1LnN0cmZ0aW1lKCclZC8lbS8lWScpICsgZicge3NlbGYudGVuUGhpbX0ge3NlbGYuc29UYXB9JwogICAgCgppZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgbiwgbSA9IG1hcChpbnQsIGlucHV0KCkuc3BsaXQoKSkKICAgIGEgPSBbXQogICAgZm9yIGkgaW4gcmFuZ2Uobik6CiAgICAgICAgYS5hcHBlbmQoVGhlTG9haShpICsgMSwgaW5wdXQoKS5zdHJpcCgpKSkKICAgIGIgPSBbXQogICAgZm9yIGkgaW4gcmFuZ2UobSk6CiAgICAgICAgYi5hcHBlbmQoQm9QaGltKGkgKyAxLCBpbnB1dCgpLnN0cmlwKCksIGlucHV0KCkuc3RyaXAoKSwgaW5wdXQoKS5zdHJpcCgpLCBpbnQoaW5wdXQoKSksIE5vbmUpKQogICAgZm9yIGl0IGluIGI6CiAgICAgICAgZm9yIHggaW4gYToKICAgICAgICAgICAgaWYgaXQubWFUTCA9PSB4Lm1hVEw6CiAgICAgICAgICAgICAgICBpdC50aGVMb2FpID0geAogICAgICAgICAgICAgICAgYnJlYWsKICAgIGIuc29ydChrZXkgPSBsYW1iZGEgeCA6ICh4Lm5nYXlDaGlldSwgeC50ZW5QaGltLCAteC5zb1RhcCkpCiAgICBmb3IgeCBpbiBiOgogICAgICAgIHByaW50KHgp