벽 들어 올리기

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

문제

한 건설사가 아파트를 짓는다. 벽은 미리 만들어 두었다가 크레인으로 들어 올려 제자리에 세운다. 건설사는 크레인을 놓을 수 있는 위치 nn곳을 찾아 두었고, 그중 몇 곳을 골라 네 벽의 중심이 모두 크레인 하나 이상에 닿게 하려 한다. 크레인은 비싸므로 개수를 최소로 줄여야 한다. 크레인은 벽의 중심까지 거리가 rr 이하이면 그 벽에 닿는다.

지을 집은 길이가 \ell이고 너비가 ww인 직사각형이다.

네 벽의 중심에 모두 닿는 데 필요한 크레인의 최소 개수를 구하라.

그림은 첫 번째 예제의 배치다.

입력

첫째 줄에 정수 \ell, ww, nn, rr가 공백으로 구분되어 주어진다. 넷 다 30 이하의 양의 정수다. \ellww는 집의 길이와 너비, nn은 크레인을 놓을 수 있는 위치의 개수, rr은 크레인이 닿는 거리다.

다음 nn개의 줄에 크레인을 놓을 수 있는 위치의 좌표 xxyy가 한 줄에 하나씩 주어진다(100x,y100-100 \le x, y \le 100). 좌표계의 원점은 건물의 중심이고 xx축은 집의 길이 방향이다. 따라서 네 벽의 중심은 (/2,0)(-\ell/2, 0), (/2,0)(\ell/2, 0), (0,w/2)(0, -w/2), (0,w/2)(0, w/2)이다.

출력

네 벽의 중심에 모두 닿는 데 필요한 크레인의 최소 개수를 한 줄에 출력한다. 어떻게 골라도 네 벽의 중심에 모두 닿을 수 없으면 Impossible을 출력한다.