#include <bits/stdc++.h>
using namespace std;

#define fast_io ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define int long long
#define pb push_back
#define ff first
#define ss second
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define sz(x) ((int)(x).size())
#define endl '\n'
#define yes cout << "yes\n"
#define no cout << "no\n"

#define rep(i,a,b) for(int i=a;i<b;++i)
#define per(i,a,b) for(int i=b-1;i>=a;--i)
#define each(x, a) for (auto& x : a)

const int INF = 1e18;
const int MOD = 1e9+7;
const int N = 2e5 + 5;

int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
int lcm(int a, int b) { return (a / gcd(a, b)) * b; }
int power(int a, int b, int m = MOD) {
    int res = 1;
    while (b > 0) {
        if (b & 1) res = res * a % m;
        a = a * a % m;
        b >>= 1;
    }
    return res;
}
int modinv(int a, int m = MOD) {
    return power(a, m - 2, m);
}

void solve() {
    int n, m;
    cin >> n >> m;
    vector<int> odd, even;
    int sum = 0;
    rep(i,1,n+1) {
        int a;
        cin>>a;
        sum+=a;
        if (i%2 != 0) {
            odd.pb(a);
        } else {
            even.pb(a);
        }
    }
    
    int odd1=0,even1=0;
    rep(i,0,m) {
        int b;
        cin>>b;
        if (b%2 != 0) {
            odd1++;
        } else {
            even1++;
        }
    }

    sort(odd.rbegin(), odd.rend());
    sort(even.rbegin(), even.rend());
    int marked_sum = 0;
    if (odd1 > 0 && !odd.empty()) {
        marked_sum+=odd[0]; 
        int limit=min((int)odd1, (int)odd.size());
        for (int i=1;i<limit;i++) {
            if (odd[i] > 0) {
                marked_sum += odd[i];
            }
        }
    }

    if (even1 > 0 && !even.empty()) {
        marked_sum += even[0]; 
        int limit = min((int)even1, (int)even.size());
        for (int i = 1; i < limit; i++) {
            if (even[i] > 0) {
                marked_sum += even[i];
            }
        }
    }
    
    cout << sum - marked_sum << endl;
}

int32_t main() {
    fast_io;

    int t;
    cin >> t;
    while (t--) {
        solve();
    }

    return 0;
}