문제는 백준에서 확인 할 수 있다.
import sys
if __name__ == "__main__":
answer = 0
N, M = map(int, input().split())
adj = [[0]*N for _ in range(N)]
for i in range(N):
adj[i][i] = 0
for _ in range(M):
a, b = map(int, sys.stdin.readline().rstrip().split())
adj[a-1][b-1] = 1
# for line in adj:
# print(line)
for mid in range(N):
for i in range(N):
for j in range(N):
# adj[i][j] = min([adj[i][j], adj[i][mid]+adj[mid][j]])
if adj[i][mid] == 1 and adj[mid][j] == 1:
adj[i][j] = 1
# for line in adj:
# print(line)
for i in range(N):
flag = True
for j in range(N):
if i != j and \
adj[i][j] == 0 and \
adj[j][i] == 0:
flag = False
if flag:
answer += 1
print(answer)