#include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int T; cin >> T; while(T--){ int N,K; cin >> N >> K; vector A(N),B(N); for(auto &a : A) cin >> a; for(auto &b : B) cin >> b; if(K == 0){ cout << accumulate(A.begin(),A.end(),0LL) << "\n"; continue; } long long answer = 0; vector D(N); vector plus,minus; bool isA = true; int move = 0; for(int i=0; i= 0) plus.push_back(i),move += !isA,isA = true; else minus.push_back(i),move += isA,isA = false; } if(isA) minus.push_back(N); else plus.push_back(N); vector> diff; for(int i=0; i+1 S; for(int i=0; i K){ auto [ign,pos] = diff.back(); diff.pop_back(); int p1,p2; if(pos > 0) p1 = plus.at(pos-1),p2 = plus.at(pos); else p1 = minus.at(-pos-1),p2 = minus.at(-pos); if(!S.count(abs(p1))) continue; move -= 2; if(p2 == N) move++; for(int p=p1+1; p K && diff.size()){ auto [ign,pos] = diff.back(); diff.pop_back(); int p1,p2; if(pos > 0) p1 = plus.at(pos-1),p2 = plus.at(pos); else p1 = minus.at(-pos-1),p2 = minus.at(-pos); if(p2 == N) continue; if(!S.count(abs(p1))) continue; move -= 2; for(int p=p1+1; p