#include <bits/stdc++.h>
using namespace std;
int f[500009];
int n, k, sum = 0, len = 0;
struct rode {
int xx, yy;
} a[500009];
int find(int x) {
if (f[x] == x)
return x;
else
return f[x] = find(f[x]);
}
int ppp(int x, int y) {
int fx = find(x), fy = find(y);
if (fx != fy)
f[fy] = fx;
}
int main() {
cin >> n >> k;
for (int i = 1; i <= n; i++)
f[i] = i;
while (k--) {
int op, x, y;
cin >> op >> x >> y;
if (op == 1) {
int flag = 0;
for (int i = 1; i <= len; i++) {
if ((a[i].xx == x && a[i].yy == y) || (a[i].xx == y && a[i].yy == x)) {
flag = 1;
break;
}
}
if (x > n || y > n)
flag = 1;
if (flag == 0) {
ppp(x, y);
}
sum += flag;
} else {
int flag = 0;
if (x > n || y > n)
flag = 1;
if (x == y)
flag = 1;
if (find(x) == find(y))
flag = 1;
sum += flag;
if (flag == 0) {
a[++len].xx = x;
a[len].yy = y;
}
}
}
cout << sum;
return 0;
}