#include<iostream> #include<vector> #include<algorithm> #include<unordered_map> #include<map> #include<cstdio> #include<cstring> #include<cmath> #include<cstdint> constint N = 2e5 + 10; constint P = 1e9 + 7; #define int int64_t namespace IO { inlineintread(){ int x = 0, f = 1; char ch = getchar(); while(ch > '9' || ch < '0') { if(ch == '-') f = -1; ch = getchar(); } while(ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + (ch - 48), ch = getchar(); return x * f; } voidwrite(int x){ if(x < 0) { x = -x; putchar('-'); } if(x > 9) write(x / 10); putchar(x % 10 + '0'); return; } } namespace math { intqpow(int a, int x){ int ans = 1; while(x) { if(x & 1) ans = ans % P * a % P; a = a * a % P; x >>= 1; } return ans; } intexgcd(int a, int b, int &x, int &y){ if(b == 0) { x = 1, y = 0; return a; } int d = exgcd(b, a % b, x, y); int xp = x; x = y; y = xp - a / b * y; return d; } } usingnamespace std; using IO::read, IO::write; using math::qpow; int n, k; int l[N], r[N]; voidsolve(){ //clear //end clear n = read(); k = read(); for(int i = 1; i <= n; i++) l[i] = read(); int ans = 0; for(int i = 1; i <= n; i++) { r[i] = read(); if(l[i] > r[i]) swap(l[i], r[i]); ans += r[i]; } sort(l + 1, l + n + 1, greater <int> ()); for(int i = 1; i < k; i++) ans += l[i]; ans++; cout << ans << "\n"; returnvoid(0); } int32_tmain(){ //int T = read(); int T = read(); while(T--) solve(); return0; }//qwq