#include <bits/stdc++.h>
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    static int aa[100];
    static char used[100];
    int n, m, i, yes;
    scanf("%d%d", &n, &m);
    for (i = 0; i < n; i++) scanf("%d", &aa[i]);
    memset(used, 0, (n - 1) * sizeof *used);
    while (m--) {
      scanf("%d", &i), i--;
      if (!used[i]) used[i] = 1;
    }
    yes = 1;
    for (i = 0; i < n; i++) {
      int j, j_;
      j_ = -1;
      for (j = i; j < n; j++)
        if (j_ == -1 || aa[j_] > aa[j]) j_ = j;
      if (j_ != i) {
        int k, good;
        good = 1;
        for (k = j_ - 1; k >= i; k--) {
          int tmp;
          if (!used[k]) {
            good = 0;
            break;
          }
          tmp = aa[k], aa[k] = aa[k + 1], aa[k + 1] = tmp;
        }
        if (!good) {
          yes = 0;
          break;
        }
      }
    }
    printf(yes ? "YES\n" : "NO\n");
  }
  return 0;
}
