n=int(input()) a=list(map(int,input().split())) b=list(map(int,input().split())) nod=max(max(a),max(b)) k=0 ans=[] while 2**(k+1)<=nod:k+=1 flag=0 for i in range(n): if not (a[i]>>k)&1:continue for j in range(n): if not (b[j]>>k)&1: ans.append((2,i+1,j+1)) b[j]^=a[i] flag=1 break if flag:break flag=0 for j in range(n): if not (b[j]>>k)&1:continue for i in range(n): if not (a[i]>>k)&1: ans.append((1,i+1,j+1)) a[i]^=b[j] flag=1 break if flag:break flag=0 for i in range(n): if not (a[i]>>k)&1:continue flag=1 for j in range(n): if not (b[j]>>k)&1: ans.append((2,i+1,j+1)) b[j]^=a[i] if flag:break flag=0 for j in range(n): if not (b[j]>>k)&1:continue flag=1 for i in range(n): if (a[i]>>k)&1: ans.append((1,i+1,j+1)) a[i]^=b[j] if flag:break print(len(ans)) for t,p,q in ans: print(t,p,q)