Square Route
시간 제한8초메모리 제한512 MB
행 간격과 열 간격이 일정하지 않은 격자 도로에서 만들어지는 정사각형의 개수를 각 데이터셋마다 센다.
문제
새 저택을 짓기로 한 대부호 시나다 씨는 어느 도시에 지을지 고민하고 있다. 사실 시나다 씨는 정사각형을 매우 좋아하는 특이한 인물이라, 조금이라도 정사각형이 많은 도시에 살고 싶어 한다.
시나다 씨는 바둑판 모양으로 도로가 정비된 도시 목록을 입수하여, 각 도시에 대해 도로로 만들어지는 정사각형의 개수를 세기로 했다. 그런데 도로와 도로의 간격이 일정하지 않을 수 있어서 손으로 정사각형을 세는 것은 큰일이다. 그래서 당신에게 바둑판 모양 도로 정보가 주어졌을 때 정사각형의 개수를 세는 프로그램을 작성해 달라고 한다.
입력
입력은 여러 데이터 세트로 구성되며, 각 데이터 세트는 다음과 같은 구조이다.
N M
h1
h2
...
hN
w1
w2
...
wM
1행에는 두 양의 정수 N, M (1 ≦ N, M ≦ 1500)이 주어진다. 이어지는 N행 h1, h2, ..., h**N (1 ≦ h**i ≦ 1000)은 도로와 도로의 남북 방향 간격을 나타낸다. 여기서 h**i는 북쪽에서 i번째 도로와 북쪽에서 i + 1번째 도로의 간격이다. 마찬가지로, 이어지는 M행 w1, ..., w**M (1 ≦ w**i ≦ 1000)은 도로와 도로의 동서 방향 간격을 나타낸다. 여기서 w**i는 서쪽에서 i번째 도로와 서쪽에서 i + 1번째 도로의 간격이다. 도로 자체의 폭은 충분히 좁아서 고려할 필요가 없다.

그림 D-1: 첫 번째 데이터 세트
N = M = 0은 입력의 끝을 나타내며, 데이터 세트에 포함되지 않는다.
출력
각 데이터 세트에 대해 정사각형의 개수를 한 줄에 출력하라. 예를 들어 Sample Input의 첫 번째 데이터 세트에는 아래와 같이 6개의 정사각형이 있으므로, 이 데이터 세트에 대한 출력은 6이 된다.

그림 D-2: 첫 번째 데이터 세트에 포함되는 정사각형