最后一题
import sys
def getRelationExtend(p,r,relations):
    list1=relations[p]
    listLen=len(list1)
    for p2 in r:
        list2=relations[p2]
        for l in list2:
            if l not in list1 and l != p:
                list1.append(l)
    if len(list1)==listLen:
        return relations[p]
    else:
        newAdd=list1[listLen:]
        relations[p]=list1
        return getRelationExtend(p,newAdd,relations)
    
        
s=sys.stdin.readline().strip()
data=[]
while s != '':
    s=list(map(int,s.split()))
    data.append(s)
    s=sys.stdin.readline().strip()
n=data[0][0]
m=data[1][0]
myrelations={}
relations=data[2]
for i in range(m):
    if relations[2*i-1] not in myrelations:
        myrelations[relations[2*i-1]]=[relations[2*i-2]]
    else:
        if relations[2*i-2] not in myrelations[relations[2*i-1]]:
            myrelations[relations[2*i-1]].append(relations[2*i-2])
        else:
            pass
for i in range(n):
    if i+1 not in myrelations:
        myrelations[i+1]=[]
count=0
for p in myrelations:
    pRelations=myrelations[p]
    r=getRelationExtend(p,pRelations,myrelations)
    myrelations[p]=r
    if len(r) == n-1:
        count+=1
    
print(count)