파일 업로드

시 쓰기

profile
실행 시간 제한메모리 제한
2 초512 MB
📃 해결할 문제

가영은 예술계의 큰 후원자입니다! 최근에 그녀는 많은 위대한 시인들을 공부하기 시작하였고, 이제 그녀는 스스로 시를 쓰고자 합니다.

가영은 NN (1N50001 \leq N \leq 5000) 개의 단어를 알고 있으며, 그녀는 이 단어들을 배열하여 시를 쓰고자 합니다. 가영은 각 단어의 길이를 음절로, 그리고 '운'에 따라 그들을 분류하였습니다. 모든 단어는 같은 '운' 분류에 속한 다른 단어들과만 운이 맞습니다.

가영의 시는 각각 MM 행 (1M1051 \leq M \leq 10^5)을 포함하며, 각 행은 KK (1K50001 \leq K \leq 5000) 개의 음절로 구성되어야 합니다. 추가로, 가영의 시는 특정한 운의 패턴에 따라 구성되어야 합니다.

가영은 주어진 제약 조건을 만족하는 다양한 시를 얼마나 많이 쓸 수 있는지 알고 싶어합니다.

💻 입력

첫 번째 입력 행에는 NN, MM, KK가 있습니다.

다음 NN개의 입력 행 각각에는 두 개의 숫자 sis_i (1siK1 \leq s_i \leq K)와 cic_i (1ciN1 \leq c_i \leq N)가 있습니다. 이것은 가영이 음절 길이 sis_i의 단어를 '운' 분류 cic_i에서 알고 있다는 것을 나타냅니다.

마지막 MM개의 입력 행은 가영이 원하는 운의 패턴을 설명하고, 각각에는 한 개의 대문자 eie_i가 있습니다. 모든 eie_i 값이 같은 행은 반드시 같은 '운' 분류에 속한 단어로 끝나야 합니다. 서로 다른 eie_i 값의 행은 반드시 서로 다른 '운' 분류에 속한 단어로 끝나야 하는 것은 아닙니다.

🖨️ 출력

주어진 제약 조건을 만족하는 가영이 쓸 수 있는 시의 수를 출력하십시오. 이 수는 매우 클 수 있기 때문에, 1,000,000,007로 나눈 나머지를 계산해 주십시오.


💻 예제 입력 1
3 3 10
3 1
4 1
3 2
A
B
A
🖨️ 예제 출력 1
960

💡 힌트

이 예에서 가영은 세 개의 단어를 알고 있습니다. 첫 두 단어는 운이 맞으며, 각각 세 개, 네 개의 음절이 있습니다. 마지막 단어는 세 개의 음절을 가지고 있고, 다른 단어들과는 운이 서로 다릅니다. 그녀는 각 행이 열 개의 음절을 포함하고, 첫 번째 행과 마지막 행이 운이 맞는 세 행의 시를 쓰려고 합니다. 그런 시가 960개 있습니다. 유효한 시의 한 예는 다음과 같습니다 (여기서 1, 2, 3은 첫 번째, 두 번째, 세 번째 단어를 각각 나타냅니다): 121 123 321


출처: USACO 2019 January Contest, Gold Problem 1. Cow Poetry