#include <cstdio>
#include <cstdlib>
const int MAXN(100010);
struct FIND_SET
{
int fa[MAXN], rank[MAXN];
void init(int n)
{
for(int i = 1; i <= n; ++i)
{
fa[i] = i;
rank[i] = 1;
}
}
int find(int sour)
{
return sour == fa[sour]? sour: fa[sour] = find(fa[sour]);
}
bool Union(int sour1, int sour2)
{
int fa1 = find(sour1);
int fa2 = find(sour2);
if(fa1 == fa2)
return false;
if(rank[fa1] >= rank[fa2])
{
rank[fa1] += rank[fa2];
fa[fa2] = fa1;
}
else
{
rank[fa2] += rank[fa1];
fa[fa1] = fa2;
}
return true;
}
};
FIND_SET fs;
int main()
{
while(true)
{
int A, B, ans(0);
if(scanf("%d", &A) == EOF)
break;
fs.init(100000);
while(A != -1)
{
scanf("%d", &B);
if(!fs.Union(A, B))
++ans;
scanf("%d", &A);
}
printf("%d\n", ans);
}
return 0;
}