#include #include struct str{ int first; int second; int third; }; std::vector ans; int x[3010],y[3010]; int main() { int a; scanf("%d",&a); for(int i=1;i<=a;i++) scanf("%d",&x[i]); for(int i=1;i<=a;i++) scanf("%d",&y[i]); int p1 = 1, p2 = 1; for(int i=2;i<=a;i++) if(x[p1] (x[i]^y[p2])) { ans.push_back({1,i,p2}); x[i] ^= y[p2]; } } ans.push_back({1,1,p2}); x[1] ^= y[p2]; for(int i=1;i<=a;i++) { if(i==p2) continue; if(y[i] < (y[i]^x[1])) { ans.push_back({2,1,i}); y[i] ^= x[1]; } } ans.push_back({1,1,p2}); x[1] ^= y[p2]; printf("%d\n",ans.size()); for(int i=0;i