농부 John은 농장 일부를 둘러싸는 새 울타리를 세우기로 했다. 그런데 걷는 내내 정신이 팔린 탓에 울타리는 계획보다 훨씬 이상한 모양이 되고 말았다.
John은 (0,0)에서 출발해 N번 움직인다. 한 번 움직일 때마다 북, 남, 동, 서 중 한 방향으로 한 칸 이동하고, 지나온 자리에 길이 1짜리 울타리를 놓는다. 첫 걸음이 북쪽이면 (0,0)에서 (0,1)까지 울타리 한 칸이 놓인다. 같은 점을 여러 번 지날 수도 있고, 같은 구간에 울타리를 여러 번 놓을 수도 있다. 이미 세운 울타리를 가로질러 걸어갈 수도 있다.
울타리를 다 세운 John은 농장이 여러 구역으로 갈라졌을 수 있다는 사실을 알아차렸다. 한 구역에서 다른 구역으로 가려면 울타리를 넘어야 하는 것이다. John은 문을 달아 이 문제를 해결하려 한다. 문은 그가 세운 길이 1짜리 울타리 구간 아무 곳에나 달 수 있고, 그 구간의 양쪽을 오갈 수 있게 해 준다.
모든 구역이 서로 오갈 수 있으려면 문을 최소 몇 개 달아야 하는지 구하여라.