I-Soar

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

문제

마을 회의는 순조롭지 않았다. "시끄러워요"라고 몇몇 주민이 불평했다. "보기 흉해요"라고 다른 이들이 말했다. "눈엣가시예요"라고 많은 이들이 동의했다. "이미 생겼고," 시장이 말했다. "없어지지 않을 겁니다."

이 모든 소동의 원인은 막 개통한 새 고속도로 구간이었다. 화살처럼 곧게 뻗은 고속도로는 마을의 북쪽 경계 전체를 따라 이어졌다.

"보세요," 시장이 말했다. "도로를 따라 나무와 높은 산울타리를 심으면 소음을 줄이고 경관을 개선할 수 있습니다. 하지만 예산이 무한하지는 않아요. 다행히 고속도로의 상당 부분은 북쪽 상업 지구의 건물들에 이미 가려져 있습니다. 건물 사이로 보이는 틈에만 나무를 심어 해결해 봅시다."

상업 지구의 남쪽에서 정북 방향(고속도로와 직교하는 방향)을 바라보는 관찰자에게 고속도로가 보이지 않도록 가리는 데 필요한 식재(植栽)의 총 길이를 계산하는 프로그램을 작성하라.

입력

입력은 여러 개의 데이터 집합으로 이루어진다. 각 데이터 집합의 첫 줄에는 고속도로와 맞닿은 마을 경계의 길이가 실수 $L$로 주어진다. $L$이 0 이하이면 입력의 끝을 의미한다.

그다음에는 상업 지구의 건물을 나타내는 0개 이상의 줄이 이어진다. 각 줄에는 두 실수 x 좌표가 주어지며, 이는 해당 건물이 가리는 고속도로 구간을 나타낸다. 이 좌표는 경계 길이와 같은 단위를 사용하며, $0$은 경계의 서쪽 끝을, $L$은 동쪽 끝을 뜻한다. 어떤 쌍 $x_1, x_2$에서 $x_1 > x_2$이면 그 데이터 집합의 끝을 의미한다.

각 건물 줄에 대해 $0 \le x_1 \le x_2 \le L$이 성립한다.

출력

각 데이터 집합에 대해 다음 형식으로 한 줄을 출력한다.

The total planting length is ##

여기서 ##는 건물들 사이로 보이는 고속도로의 총 길이이며, 소수점 첫째 자리까지 출력한다.