#include<stdio.h>
#include<map>
#define N 50000
using namespace std;
int p[N*3+5];
int find(int k){
if(p[k]==k) return k;
return p[k]=find(p[k]);
}
int main(){
int n,m,i,j,x,y,z,ans=0;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
p[i]=i,p[i+N]=i+N,p[i+N+N]=i+N+N;
for(i=0;i<m;i++){
scanf("%d%d%d",&x,&y,&z);
if(y>n || z>n){
ans++;
continue;
}
if(x==1){
if(find(y+N)==find(z) || find(y+N+N)==find(z)){
ans++;
continue;
}
p[find(y)]=find(z),p[find(y+N)]=find(z+N),p[find(y+N+N)]=find(z+N+N);
}
if(x==2){
if(find(y)==find(z) || find(y+N+N)==find(z)){
ans++;
continue;
}
p[find(y+N)]=find(z),p[find(y+N+N)]=find(z+N),p[find(y)]=find(z+N+N);
}
}
printf("%d\n",ans);
}
沒有留言:
張貼留言