rt
#include<bits/stdc++.h>
using namespace std;
int n, m, ans;
int ft[200010];
int find(int x)
{
if (ft[x] == x) return x;
return ft[x] = find(ft[x]);
}
void merge(int x, int y)
{
if (find(x) == find(y)) return;
ft[find(x)] = find(y);
}
int main()
{
cin >> n >> m;
for (int i = 1; i <= 3 * n; i++) ft[i] = i;
for (int i = 1; i <= m; i++)
{
int op, x, y;
cin >> op >> x >> y;
if ((op == 2 && x == y) || x > n || y > n || find(x) == find(y)) ans++;
else if (op == 1)
{
merge(x, y);
merge(x + n, y + n);
merge(x + 2 * n, y + 2 * n);
}
else
{
merge(x, y + n);
merge(x + 2 * n, y);
merge(x + n, y + 2 * n);
}
}
cout << ans << endl;
return 0;
}