Într-o bibliotecă se află C dulapuri identice aşezate unul lângă altul pe peretele unei încăperi, dulapurile fiind numerotate de la stânga spre dreapta cu numerele naturale de la 1 la C. Fiecare dulap conţine 1000 de rafturi, situate vertical unul deasupra altuia, rafturile fiecărui dulap fiind numerotate de la 1 la 1000 de jos în sus.
Fiecare dulap este prevăzut cu o scară cu care se poate ajunge la orice raft. Dacă bibliotecara urcă scara unui anumit dulap D până la un anumit nivel k, ea va putea aduna orice carte de pe rafturile 1 până la k inclusiv, din dulapul D şi din dulapurile învecinate (dulapul D-1 şi dulapul D+1).
Cunoscând dulapurile şi rafturile de unde trebuie luate cărţi, bibliotecara doreşte să adune toate cărţile cerute, dar suma înălţimilor până la care trebuie să urce să fie minimă.
Cerinţă
Scrieţi un program care să determine suma minimă a înălţimilor până la care trebuie să urce bibliotecara pentru a aduna toate cărţile cerute.
Date de intrare
Prima linie a fişierului de intrare rafturi.in conţine două numere naturale C şi N, separate printr-un spaţiu, reprezentând numărul dulapurilor şi respectiv numărul cărţilor pe care bibliotecara trebuie să le adune.
Următoarele N linii conţin câte două numere naturale a b, separate printr-un spaţiu, reprezentând numărul dulapului, respectiv numărul raftului de unde trebuie luată o carte.
Date de ieşire
Fişierul de ieşire rafturi.out va conţine un singur număr natural reprezentând suma minimă a înălţimilor până la care trebuie să urce bibliotecara pentru a aduna toate cărţile cerute.
Restricţii
1≤ C ≤ 10 000
1≤ N ≤ 50 000
Exemple
rafturi.in
rafturi.out
Explicaţii
10 4
5 4
1 1
6 2
3 8
11
Bibliotecara urcă astfel:
-pe dulapul 1 la raftul 1
-pe dulapul 4 la raftul 8
-pe dulapul 6 la raftul 2