import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int T = sc.nextInt();

        while (T-- > 0) {
            int N = sc.nextInt();
            int K = sc.nextInt();

            long[] A = new long[N];
            long[] C = new long[N];

            HashSet<Long> values = new HashSet<>();

            for (int i = 0; i < N; i++) {
                A[i] = sc.nextLong();
                values.add(A[i]);
            }

            for (int i = 0; i < N; i++)
                C[i] = sc.nextLong();

            long ans = 0;

            for (long x : values) {

                int greater = 0;
                int equal = 0;

                ArrayList<Long> costs = new ArrayList<>();

                for (int i = 0; i < N; i++) {

                    if (A[i] > x)
                        greater++;

                    else if (A[i] == x)
                        equal++;

                    else
                        costs.add((x - A[i]) * C[i]);
                }

                if (greater > K)
                    continue;

                int need = K + 1 - (greater + equal);

                if (need < 0)
                    need = 0;

                if (need > costs.size())
                    continue;

                Collections.sort(costs);

                long spend = 0;

                for (int i = 0; i < need; i++)
                    spend += costs.get(i);

                long profit = 1L * K * x - spend;

                ans = Math.max(ans, profit);
            }

            System.out.println(ans);
        }
    }
}