def dfs(u):
for v in graph[u]:
if not visited[v]:
visited[v] = True
if match[v] == -1 or dfs(match[v]):
match[v] = u
return True
return False
n, m = map(int, input().split())
graph = [[] for _ in range(n + 1)]
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
match = [-1] * (n + 1)
res = 0
for u in range(1, n + 1):
visited = [False] * (n + 1)
if dfs(u):
res += 1
print(n - res)