첫째 줄에 과목의 개수와 과목의 관계도 개수 입력
2번째 줄부터 M+1번째 줄까지 과목의 관계도 입력
1~N까지의 과목에 대한 해당 과목을 들을 수 있는 학기 출력
각 노드에 관해서 사이클이 존재하지 않으므로 위상 정렬로 풀이
deg = {}
ans = []
q = deque()
for sub in range(1, N+1):
deg[sub] = [[], 0]
ans.append(1)
for _ in range(M):
A, B = map(int, sys.stdin.readline().split())
deg[A][0].append(B)
deg[B][1] += 1
for key in deg.keys():
if deg[key][1] == 0: q.append(key)
while q:
key_ = q.popleft()
for elem in deg[key_][0]:
if deg[elem][1] > 0: deg[elem][1] -= 1
if deg[elem][1] == 0:
q.append(elem)
ans[elem-1] += ans[key_-1]
else: continue
deg[key_][0] = []