당신은 공원의 나무들이 건강하게 유지되도록 점검하는 일을 맡았다. 각 나무는 2차원 평면 위의 한 점이며, 서로 다른 두 나무가 같은 위치에 있지 않다. 잔디를 새로 심었기 때문에, 당신은 정해진 길들만 따라 걸을 수 있다. 각 길은 평면 위의 무한히 긴 수평선 또는 수직선이며, 어떤 나무도 길 위에 있지 않다.
당신은 길에서 볼 수 없는 나무가 있을까 걱정된다. 어떤 나무는, 어떤 길 위에 서서 그 길에 수직인 방향을 바라볼 때 다른 나무가 시야를 가리지 않고 그 나무를 볼 수 있어야만 "보인다"고 한다. (수직인 길에서는 수평 방향을 바라보고, 수평인 길에서는 수직 방향을 바라본다.) 공원의 배치가 주어질 때, 보이는 나무의 개수를 구하여라.
입력은 여러 개의 데이터 집합으로 이루어진다. 각 데이터 집합의 첫 줄에는 공백으로 구분된 두 정수 $N$과 $M$ ($0 < N, M \le 100000$)이 주어진다. $N$은 나무의 수, $M$은 길의 수이다.
이어지는 $N$개의 줄에는 각각 공백으로 구분된 두 정수 $X$와 $Y$가 주어지며, 이는 한 나무의 좌표이다. $X$와 $Y$는 임의의 32비트 정수일 수 있다.
이어지는 $M$개의 줄에는 각각 하나의 길(수직선 또는 수평선)이 x=K 또는 y=K 형태로 공백 없이 주어진다. 여기서 x와 y는 소문자이고, $K$는 임의의 32비트 정수일 수 있다.
입력의 끝은 공백으로 구분된 두 개의 0으로 이루어진 줄로 나타낸다.
각 데이터 집합마다 보이는 나무의 개수를 정수 하나로 한 줄에 출력한다. 출력 사이에 빈 줄을 넣지 않는다.