#include #include using namespace std; const int maxn=1e6+10; int idx[maxn]; int s[maxn]; int find_root( int x) { int t = x; while(idx[t]!=t) { idx[t]=idx[idx[t]]; t=idx[t]; } return t; } void u2e( int i, int j) { int idx_i=find_root(i); int idx_j=find_root(j); if(idx_i!=idx_j) { if(s[idx_i] > s[idx_j]) { s[idx_i]+=s[idx_j]; idx[idx_j]=idx[idx_i]; } else { s[idx_j]+=s[idx_i]; idx[idx_i]=idx[idx_j]; } } } int main() { ios_base::sync_with_stdio(false); int n; int q; cin>>n>>q; for(int i=0;i>c>>a>>b; if(c=='=') { u2e(a,b); } else { if(find_root(a) == find_root(b)) { printf("yes\n"); } else { printf("no\n"); } } } return 0; }