ll a[3d3],b[]; VI res; void ent(ll t,ll p,ll q){ res.push_back(t); res.push_back(p+1); res.push_back(q+1); ll x=a[p]^b[q]; (t==1?a[p]:b[q])=x; } { ll@n; rd(a(n),b(n)); ll am=argmax[i,0,n](a[i]); ll bm=argmax[i,0,n](b[i]); if(a[am]>b[bm]){ ent(1,am,bm); ent(2,am,bm); ent(1,am,bm); } rep(i,n){ if(a[i]>(a[i]^b[bm])){ ent(1,i,bm); } } ent(1,0,bm); ent(2,0,bm); ent(1,0,bm); rep(i,n){ if(i!=bm&&b[i]<(b[i]^a[0])){ ent(2,0,i); } } ent(1,0,bm); ent(2,0,bm); ent(1,0,bm); wt((ll)(res.size()/3)); rep(i,0,res.size(),3){ wt(res[i],res[i+1],res[i+2]); } }