from collections import defaultdict N, M = map(int, input().split()) events = set() G = defaultdict(list) for i in range(M): a, b = map(int, input().split()) events.add(b) events.add(a) G[b].append(a) def f(a, b): return 2*b - 2*a - 1 events.add(N) dist = defaultdict(int) dist[1] = 0 pre = 1 for pos in sorted(events): # posマスでは, 前のイベントマスから 2 で来るか 近道のいずれか memo = dist[pre] + 2*(pos - pre) # 近道 for prev in G[pos]: memo = min(memo, dist[prev] + f(prev, pos)) dist[pos] = memo pre = pos print(dist[N])