#include using namespace std; int main() { int N; cin >> N; vector A(N), B(N); int mx = 0; for (int &a : A) cin >> a, mx = max(mx, a); for (int &b : B) cin >> b, mx = max(mx, b); int mm = -1; for (int i = 29; i >= 0; --i) if (mx & (1 << i)) { mm = i; break; } vector> ans; int bv = -1, av = -1; for (int i = 0; i < N; i++) { if (B[i] & (1 << mm)) bv = i; if (A[i] & (1 << mm)) av = i; } if (bv == -1) ans.emplace_back(2, av, 0), bv = 0, B[bv] ^= A[av]; else if (av == -1) ans.emplace_back(1, 0, bv), av = 0, A[av] ^= B[bv]; for (int i = 0; i < N; i++) if (!(B[i] & (1 << mm))) ans.emplace_back(2, av, i); for (int i = 0; i < N; i++) if (A[i] & (1 << mm)) ans.emplace_back(1, i, bv); cout << ans.size() << endl; for (auto [a, b, c] : ans) cout << a << " " << b + 1 << " " << c + 1 << endl; }