다각형의 확장

시간 제한1초메모리 제한128 MB

문제

수평선분과 수직선분으로만 이루어진 단순 다각형이 있다. 다각형의 꼭짓점은 반시계 방향으로 주어지며, 인접한 두 꼭짓점은 항상 하나의 수평선분 또는 수직선분을 이룬다.

이 다각형의 d-확장은 둘레의 모든 점을 바깥쪽으로 거리 d만큼 넓혀 만든 영역의 경계이다. 확장 과정에서 오목한 부분이 메워질 수 있으므로, 확장된 다각형의 꼭짓점 수는 원래 꼭짓점 수와 달라질 수 있다. 입력으로 주어지는 경우에는 d-확장 결과 안에 구멍이 생기지 않는다고 가정한다.

d와 원래 다각형이 주어질 때, d-확장된 다각형을 구하는 프로그램을 작성하라.

입력

첫 번째 줄에 정수 d가 주어진다. 두 번째 줄에 꼭짓점의 수 n이 주어진다. 다음 n개의 줄에는 다각형의 꼭짓점 좌표 Xi Yi가 둘레를 따라 반시계 방향으로 한 줄에 하나씩 주어진다.

제한은 다음과 같다.

  • 1 <= d <= 500
  • 3 <= n <= 50
  • 모든 X, Y 좌표는 2000 이하의 자연수이다.

출력

첫 번째 줄에 확장된 다각형의 꼭짓점 수를 출력한다. 이어서 확장된 다각형의 꼭짓점 좌표를 한 줄에 하나씩 출력한다.

좌표는 x값이 가장 작은 꼭짓점부터 시작하고, 그런 꼭짓점이 여러 개라면 그중 y값이 가장 작은 꼭짓점부터 시작한다. 이후의 좌표는 반시계 방향 순서로 출력한다.