from collections import defaultdict def dfs(now: int): for nxt in g[now]: if dist[nxt] < dist[now] + 1: dist[nxt] = dist[now] + 1 dfs(nxt) 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) num = 0 for k, v in dist.items(): num = max(num, v) print(2 * (n - 1) - num)