팡고른 숲

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

문제

드워프 김리는 팡고른 숲에 들어선 뒤로 마음이 편치 않다. 이곳의 나무는 어딘가 이상하다. 그래서 김리는 숲 가장자리에 있는 야영지 가운데 한 곳으로 가려고 한다. 다만 안심하려면 언제나 모든 나무가 보여야 한다. 다행히 드워프의 눈은 아주 좋아서 모든 방향으로 무한히 멀리 본다.

팡고른 숲은 변이 좌표축과 평행하고 두 꼭짓점이 (0,0)(0, 0)(w,h)(w, h)인 직사각형 FF다. 나무 NN그루는 모두 FF의 내부에 있고, 11번부터 CC번까지 번호가 붙은 야영지 CC개는 모두 FF의 변 위에 있다. 나무는 지도 바깥으로 곧게 자라므로 점으로 본다. 따라서 김리는 자기 위치와 나무를 잇는 선분 위에 다른 나무가 없을 때, 그리고 그때만 그 나무를 본다.

어느 야영지에서든 김리는 모든 나무를 본다. 처음에 김리는 숲 내부의 나무가 없는 자리에 서 있고(드워프는 나무에 오르지 않는다), 그 자리에서 모든 야영지와 모든 나무를 본다. 팡고른 숲은 아주 오래되어 한 직선 위에 놓인 나무가 세 그루 이상 없다.

처음 위치에서 야영지 cc까지 이어지는 경로 γ\gamma가 있고 γ\gamma 위의 모든 점에서 모든 나무가 보이면, 김리는 야영지 cc에 안전하게 갈 수 있다. 김리가 안전하게 갈 수 있는 야영지를 모두 찾는 프로그램을 작성하라.

입력

첫째 줄에 직사각형 FF의 크기를 나타내는 정수 wwhh가 주어진다. 둘째 줄에 김리의 처음 위치를 나타내는 정수 xGx_GyGy_G가 주어진다.

셋째 줄에 야영지의 개수 CC가 주어진다. 다음 CC개 줄 중 ii번째 줄에는 ii번 야영지의 좌표를 나타내는 정수 xix_iyiy_i가 주어진다.

그 다음 줄에 나무의 수 NN이 주어진다. 다음 NN개 줄에는 나무의 좌표를 나타내는 정수 xxyy가 주어진다. 이 NN개 줄 가운데 같은 줄은 없다.

출력

첫째 줄에 김리가 안전하게 갈 수 있는 야영지의 개수 mm을 출력한다. m0m \ne 0이면 둘째 줄에 그 야영지의 번호를 증가하는 순서로, 공백 하나로 구분해 출력한다.

제한

모든 테스트 케이스에서 3N20003 \le N \le 2000, 1C100001 \le C \le 10000, 0<w,h1090 < w, h \le 10^9이다.

힌트

첫 번째 예제의 상황과, 김리의 시작 위치 GG에서 안전하게 갈 수 있는 야영지까지 이어지는 경로 하나를 그리면 다음과 같다.

김리는 가는 도중에 숲을 벗어나도 된다. 다만 숲 바깥에서도 모든 나무가 보여야 한다. 그렇지 않다면 2번 야영지에도 갈 수 있었을 것이다.