상학어

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

문제

세상에는 남규어와 재혁어가 있었는데, 어느 순간부터 그 중간 단계인 상학어가 생겨났다.

상학어 단어는 다음과 같이 만든다.

  1. 남규어 단어 하나를 골라, 그 단어에서 길이가 $1$ 이상인 접두사(앞에서부터 잘라낸 부분)를 하나 고른다.
  2. 재혁어 단어 하나를 골라, 그 단어에서 길이가 $1$ 이상인 접미사(뒤에서부터 잘라낸 부분)를 하나 고른다.
  3. 고른 접두사 뒤에 접미사를 이어붙인다. 순서는 반드시 남규어 접두사 → 재혁어 접미사이다.

예를 들어 남규어 단어 abc와 재혁어 단어 de가 있으면 ae, ade, abe, abde, abce, abcde는 만들 수 있지만 bce, ace, abc는 만들 수 없다.

이렇게 만든 단어가 실제로 뜻을 가지는지는 상관없다. 남규어 사전과 재혁어 사전이 주어질 때, 서로 다른(중복되지 않는) 상학어 단어를 최대 몇 개 만들 수 있는지 구하여라. 예를 들어 남규어 단어 ab, abc와 재혁어 단어 cd, d가 있으면 abcd는 두 가지 방법으로 만들어지지만 같은 단어이므로 한 개로만 센다.

입력

입력은 여러 개의 테스트 케이스로 이루어지며, 0 0이 주어지면 끝난다.

각 테스트 케이스의 첫째 줄에는 남규어 단어의 개수 $P$와 재혁어 단어의 개수 $S$가 주어진다. ($1 \le P, S \le 1000$)

이어지는 $P$개의 줄에는 남규어 단어가 한 줄에 하나씩, 그다음 $S$개의 줄에는 재혁어 단어가 한 줄에 하나씩 주어진다. 각 단어는 길이가 $1$ 이상 $1000$ 이하이고 영어 소문자로만 이루어진다. 한 언어 안에서 같은 단어가 두 번 나오지는 않으며, 한 언어에 속한 모든 단어의 길이 합은 최대 $10^5$이다.

출력

각 테스트 케이스마다 만들 수 있는 서로 다른 상학어 단어의 개수를 한 줄에 하나씩 출력한다.