코드 비교

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

회사 RBN과 회사 HAL은 모두 한 줄에 하나의 문장을 쓰는 프로그래밍 언어를 사용한다. 각 문장은 다음과 같은 형태이다.

STOREA = STOREB + STOREC

여기서 STOREA, STOREB, STOREC는 변수 이름이다. 즉 각 줄은 첫 번째 열에서 시작하는 변수 이름, 공백, 등호, 공백, 두 번째 변수 이름, 공백, 덧셈 기호 +, 공백, 세 번째 변수 이름 순서로 이루어진다. 한 줄에서 같은 변수 이름이 여러 번 나올 수도 있다. 변수 이름은 대문자 알파벳(AZ) $1$개 이상 $8$개 이하로 이루어진다.

HAL이 RBN의 소스 코드에서 연속된 여러 줄을 그대로 복사하되, 다음과 같은 사소한 변형만 가했다고 하자.

  • HAL은 일부 변수 이름을 바꾸었을 수 있다. 즉 RBN 프로그램의 연속된 줄들을 가져와, 그 안의 각 변수마다 그 변수의 모든 등장을 새로운 변수 이름으로 바꾸었다(새 이름이 원래 이름과 같을 수도 있다). 단, 서로 다른 두 변수를 같은 새 이름으로 바꾸지는 않았다(즉 변수 이름 치환은 단사이다).
  • HAL은 일부 줄에서 오른쪽 두 항의 순서를 바꾸었을 수 있다. 즉 STOREA = STOREB + STORECSTOREA = STOREC + STOREB로 바꿀 수 있다.
  • HAL은 RBN 소스 코드의 줄 순서는 바꾸지 않았다.

RBN 프로그램과 HAL 프로그램이 주어질 때, 위 변형들을 통해 RBN의 연속된 줄들로부터 만들어질 수 있는, HAL 프로그램의 가장 긴 연속된 줄들의 개수를 구하여라. 두 프로그램에서 대응되는 줄들이 반드시 같은 줄 번호에서 시작할 필요는 없다.

입력

첫째 줄에 공백으로 구분된 두 정수 $R$와 $H$가 주어진다($1 \le R \le 1000$, $1 \le H \le 1000$). $R$은 RBN 프로그램의 줄 수, $H$는 HAL 프로그램의 줄 수이다.

다음 $R$개의 줄에 RBN 프로그램이 주어진다.

그다음 $H$개의 줄에 HAL 프로그램이 주어진다.

출력

HAL이 RBN에서 복사하여 변형했을 수 있는 가장 긴 연속된 줄들의 개수를 정수 하나로 한 줄에 출력한다. (그런 줄이 하나도 없으면 $0$을 출력한다.)

노트

예제에서는 RBN 프로그램에 치환 RA → HM, RB → D, RC → HN, D → HA, RE → HB를 적용하면 RBN의 1–2번째 줄이 HAL의 2–3번째 줄과 같아진다. 세 줄 이상이 일치하는 경우는 없으므로 답은 $2$이다.