from collections import defaultdict def dfs(now: int, prev: int): for nxt in g[now]: if nxt == prev: continue dist[nxt] = max(dist[nxt], dist[now] + 1) dfs(nxt, now) n, m = map(int, input().split()) g_rev = defaultdict(list) g = defaultdict(list) visited = set() for _ in range(m): a, b = map(int, input().split()) visited.add(a) visited.add(b) g[a].append(b) g_rev[b].append(a) visited = list(visited) s_list = [] dist = defaultdict(lambda : -10 ** 18) for start in visited: if g_rev[start] == []: s_list.append(start) dist[start] = 0 for start in s_list: dfs(start, -1) num = 0 for k, v in dist.items(): num = max(num, v) print(2 * (n - 1) - num)