## https://yukicoder.me/problems/no/1995 import math def main(): N, M = map(int, input().split()) ab = [] b_map = {} for _ in range(M): a, b = map(int ,input().split()) ab.append((a ,b)) if b not in b_map: b_map[b] = [] b_map[b].append(a) pos_set = set() for a, b in ab: pos_set.add(a) pos_set.add(b) pos_set.add(1) pos_set.add(N) pos_list = list(pos_set) pos_list.sort() answer = 0 dp = {1: 0} for i in range(len(pos_list)): p = pos_list[i] ans = answer if p in b_map: for q in b_map[p]: ans = max(ans, dp[q] + 1) dp[p] = ans answer = ans x = dp[N] answer = 2 * (N - 1) - x print(answer) if __name__ == "__main__": main()