#include using namespace std; using ll = long long; template using Pa = pair; template using vec = vector; template using vvec = vector>; class QuickFind{ private: vec G; vec val; vvec comp; public: QuickFind(int N){ G.resize(N); comp.resize(N); val.resize(N); iota(G.begin(),G.end(),0); for(int i=0;i> N >> Q; QuickFind uf(N); vec now(N); while(Q--){ int t,a,b; cin >> t >> a >> b; a--; if(t==1){ b--; uf.unite(a,b); } if(t==2) uf.addval(a,b); if(t==3){ cout << uf.getval(a) << "\n"; } } }