n,m=map(int,input().split()) e=[] for i in range(m): a,b=map(int,input().split()) e+=[(a-1,b-1)] class SCC(): def __init__(self,n): self.n=n self.e=[[] for i in range(self.n)] self.re=[[] for i in range(self.n)] return def add_edge(self,s,t): self.e[s]+=[t] self.re[t]+=[s] return def scc(self): v=[0]*self.n g=[0]*self.n o=[] for i in range(self.n): if v[i]==0: q=[i] while len(q)>0: s=q[-1] v[s]=1 while g[s]0: f[s]+=1 for t in E[s]: if v[t]==0: v[t]=1 f[t]+=1 q+=[t] E=[[] for i in range(l)] for a,b in e: if c[a]!=c[b]: E[c[a]]+=[c[b]] E[c[b]]+=[c[a]] v=[0]*l v[0]=1 q=[0] for s in q: for t in E[s]: if v[t]==0: v[t]=1 q+=[t] print(sum(f[i]!=2 for i in range(l))-(0 not in v))