#include <bits/stdc++.h>
using namespace std;
void swap(int &a, int &b) {
  int t = a;
  a = b;
  b = t;
}
int main() {
  int t;
  cin >> t;
  while (t--) {
    int n, m;
    cin >> n >> m;
    int num;
    int *arr = new int[n];
    for (int i = 0; i < n; i++) cin >> arr[i];
    unordered_set<int> st;
    for (int i = 0; i < m; i++) {
      cin >> num;
      st.insert(num - 1);
    }
    for (int i = 0; i < n - 1; i++) {
      for (int j = 0; j < n - i - 1; j++) {
        if (arr[j] > arr[j + 1]) {
          if (st.find(j) != st.end()) {
            swap(arr[j], arr[j + 1]);
          }
        }
      }
    }
    int c = 0;
    for (int i = 0; i < n - 1; i++) {
      if (arr[i] > arr[i + 1]) {
        c = 1;
        break;
      }
    }
    if (c == 1)
      cout << "NO\n";
    else
      cout << "YES\n";
  }
}
