#749. Ngôn ngữ (LANGUAGE)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Dấu câu xuất hiện muộn hơn chữ viết, vì vậy ngôn ngữ thời xưa không có dấu câu. Bây giờ bạn cần xử lý một đoạn văn bản không có dấu câu.

Một đoạn văn bản T được cấu tạo từ các chữ cái thường. Một từ W cũng được cấu tạo từ các chữ cái thường. Một từ điển D là tập hợp của nhiều từ W . Chúng ta gọi một đoạn văn bản T là "có thể hiểu được" trong từ điển D nếu đoạn văn bản T có thể được chia thành nhiều phần, và mỗi phần đều là một từ có trong từ điển D .

Ví dụ: Từ điển D bao gồm các từ is, your, what, name.

  • Đoạn văn whatisyourname có thể hiểu được trong từ điển D vì nó có thể chia thành 4 từ: what, is, your, name, và tất cả đều thuộc từ điển D .
  • Đoạn văn whatisyouname không thể hiểu được trong từ điển D , nhưng có thể hiểu được trong từ điển D’=D+ you.
  • Một tiền tố của đoạn văn này là whatis có thể hiểu được trong từ điển D , và đây là tiền tố dài nhất có thể hiểu được trong từ điển D .

Cho một từ điển D , chương trình của bạn cần xác định xem các đoạn văn bản có thể được hiểu trong từ điển D hay không, và đưa ra vị trí kết thúc của tiền tố dài nhất có thể hiểu được trong từ điển D .

Dữ liệu:

  • Dòng đầu tiên chứa hai số nguyên dương n m , biểu thị từ điển D n từ và có m đoạn văn bản cần xử lý.
  • n dòng tiếp theo, mỗi dòng mô tả một từ trong từ điển.
  • m dòng tiếp theo, mỗi dòng mô tả một đoạn văn bản.

Kết quả:

  • Đối với mỗi đoạn văn bản được nhập vào, bạn cần in ra độ dài (vị trí kết thúc) của tiền tố dài nhất có thể hiểu được trong từ điển D .

Ví dụ:

Dữ liệu:

4 3
is
name
what
your
whatisyourname
whatisyouname
whaisyourname

Kết quả:

14
6
0

Giới hạn: 1\le n, m\le 20 , độ dài mỗi từ không quá 10 , độ dài mỗi đoạn văn bản không quá 1 MB.