#include<stdio.h>
#define MAX 10005
int p[MAX];
int num[MAX];
int find(int x)
{
int k,j,r;
r=x;
while(r!=p[r])
r=p[r];
k=x;
while(k!= r)
{
j=p[k];
p[k]=r;
k=j;
}
return r;
}
void Union(int x,int y)
{
int px=find(x);
int py=find(y);
if(px!=py){
num[px]+=num[py];
num[py]=num[px];
p[px]=py;
}
}
int main()
{
int n;
int i;
int x,y;
char c;
scanf("%d",&n);
for(i=0;i<n;i++){
p[i]=i;
num[i]=1;
}
while(1){
scanf("%c",&c);
if(c=='S'){
int count=0;
for(i=0;i<n;i++){
if(p[i]==i)count++;
}
if(count!=1)printf("There are %d components.\n",count);
else printf("The network is connected.\n");
break;
}
if(c=='C'){
scanf("%d%d",&x,&y);
if(find(x)==find(y)){
printf("yes\n");
}
else{
printf("no\n");
}
}
else if(c=='I'){
scanf("%d%d",&x,&y);
Union(x,y);
}
}
return 0;
}