LIFTOVI | 프로그래밍의 벗 PivotOJ
PivotOJ

LIFTOVI

시간 제한: 1000ms메모리 제한: 128MB출처: CHC 2003 Regional Competition - JuniorsBOJ 3229

문제

Solitaire has N elevators. Each elevator are connecting exactly two floors and it does not stop on the floors between that two floors. The speed of all the elevators are the same, 5 seconds to pass one floor.

On the beginning, each elevator is in its lower position and they are starting cruising to the upper floor. After some elevator come to its upper position, it immediatly starts to go back to its lower position, and so on...

Mirko is on the first (the lowest) floor and he wants as quick as possible come to the top of the solitaire. He can change elevators only on the floors that are common to both elevators, and if the other elevator is in that moment on that floor, that change does not take any time.

Write a program that will calculate minimal time in which Mirko can get to the top of the solitaire. 

입력

In the first line of the input file there are two integers K and N, separated with space, number of floors in solitaire and number of elevators, 2 ≤ K ≤ 1000, 1 ≤ N ≤ 50000.

In each of the next N lines there are description of one elevator, two integers A and B, separated with space, 1 ≤ A < B ≤ K, means that elevator is travelling between floors A and B. 

There are no two different elevators that travels between same floors.

Note: input data will guarantee that solution will always exists. 

출력

In the only line of output file write minimal time (in seconds) from the text above. 

예제

예제 1

입력
10 4
1 5
5 10
5 7
7 10
출력
45

예제 2

입력
10 3
1 5
3 5
3 10
출력
105

예제 3

입력
20 5
1 7
7 20
4 7
4 10
10 20
출력
150
코드를 제출하려면 로그인하세요.