./Main.c:1:1: warning: data definition has no type or storage class
r[1<<17],q,p,a,b,i;f(int x){if(r[x]!=x)return r[x]=f(r[x]);return x;}main(n){scanf("%d%*d",&n);for(i;i<n;i++){r[i]=i;}for(;~scanf("%d%d%d",&p,&a,&b);){if(!p){r[f(a)]=f(b);}else{if(f(a)==f(b)){puts("Yes");}else{puts("No");}}}}
^
./Main.c:1:1: warning: type defaults to ‘int’ in declaration of ‘r’ [-Wimplicit-int]
./Main.c:1:10: warning: type defaults to ‘int’ in declaration of ‘q’ [-Wimplicit-int]
r[1<<17],q,p,a,b,i;f(int x){if(r[x]!=x)return r[x]=f(r[x]);return x;}main(n){scanf("%d%*d",&n);for(i;i<n;i++){r[i]=i;}for(;~scanf("%d%d%d",&p,&a,&b);){if(!p){r[f(a)]=f(b);}else{if(f(a)==f(b)){puts("Yes");}else{puts("No");}}}}
^
./Main.c:1:12: warning: type defaults to ‘int’ in declaration of ‘p’ [-Wimplicit-int]
r[1<<17],q,p,a,b,i;f(int x){if(r[x]!=x)return r[x]=f(r[x]);return x;}main(n){scanf("%d%*d",&n);for(i;i<n;i++){r[i]=i;}for(;~scanf("%d%d%d",&p,&a,&b);){if(!p){r[f(a)]=f(b);}else{if(f(a)==f(b)){puts("Yes");}else{puts("No");}}}}
...