#include #include #include #include using namespace std; long long readInt(long long l,long long r,char endd){ long long x=0; int cnt=0; int fi=-1; bool is_neg=false; while(true){ char g=getchar(); if(g=='-'){ assert(fi==-1); is_neg=true; continue; } if('0'<=g && g<='9'){ x*=10; x+=g-'0'; if(cnt==0){ fi=g-'0'; } cnt++; assert(fi!=0 || cnt==1); assert(fi!=0 || is_neg==false); assert(!(cnt>19 || ( cnt==19 && fi>1) )); } else if(g==endd){ assert(cnt>0); if(is_neg){ x= -x; } assert(l<=x && x<=r); return x; } else { assert(false); } } } string readString(int l,int r,char endd){ string ret=""; int cnt=0; while(true){ char g=getchar(); assert(g!=-1); if(g==endd){ break; } cnt++; ret+=g; } assert(l<=cnt && cnt<=r); return ret; } long long readIntSp(long long l,long long r){ return readInt(l,r,' '); } long long readIntLn(long long l,long long r){ return readInt(l,r,'\n'); } string readStringLn(int l,int r){ return readString(l,r,'\n'); } string readStringSp(int l,int r){ return readString(l,r,' '); } int T; int n,q; int A[100100]; int B[100100]; int cur=0; int main(){ T=readIntLn(1,5); while(T--){ n=readIntSp(1,100000); q=readIntLn(1,100000); cur =0 ; for(int i=1;i<=n;i++){ if(i==n){ A[i]=readIntLn(1,1000000000); } else { A[i]=readIntSp(1,1000000000); } } for(int i=1;i<=n;i++){ if(i==n){ B[i]=readIntLn(1,1000000000); } else { B[i]=readIntSp(1,1000000000); } if(A[i] == B[i])cur++; } while(q--){ int l,r,c; l=readIntSp(0,2000000000); r=readIntSp(0,2000000000); c=readIntLn(0,2000000000); l ^= cur; r ^= cur; c ^= cur; assert(1<= l && l<=r && r<=n); assert(1<=c && c<=1000000000); for(int i=l;i<=r;i++){ if(A[i] == B[i] && c != B[i]){ cur --; A[i] = c; } else if(A[i] != B[i] && c == B[i]){ cur++; A[i] = c; } } cout<