#include <bits/stdc++.h>
using namespace std;
int main() {
  long long i, j, n, t, k;
  cin >> t;
  while (t--) {
    cin >> n >> k;
    long long a[n], w[k];
    for (i = 0; i < n; i++) cin >> a[i];
    for (i = 0; i < k; i++) cin >> w[i];
    sort(a, a + n);
    sort(w, w + k);
    vector<int> vis(n, 0);
    long long ans = 0;
    for (i = 1; i <= k; i++) {
      ans += a[n - i];
      vis[n - i] = 1;
      w[i - 1]--;
      if (w[i - 1] == 0) ans += a[n - i];
    }
    i = 0;
    j = 0;
    int f = 0;
    reverse(w, w + k);
    while (i < n) {
      f = 0;
      while (w[j] > 0) {
        if (f == 0) {
          if (!vis[i]) ans += a[i];
          f = 1;
        }
        i++;
        w[j]--;
      }
      j++;
    }
    cout << ans << endl;
  }
}
