#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
template <class T>
inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
const int MOD = 1000000007;
const int INF = 1000000001;
const ll LINF = 1000000001000000001LL;
void solve();
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout << fixed << setprecision(numeric_limits<double>::max_digits10);
  solve();
  return 0;
}
void solve() {
  int t;
  cin >> t;
  while (t--) {
    int n, m;
    cin >> n >> m;
    vector<int> a(n);
    for (int i = (0); i < ((n)); i++) cin >> a[i];
    vector<int> b(n, false);
    int p;
    for (int i = (0); i < ((m)); i++) {
      cin >> p;
      p--;
      b[p] = true;
    }
    bool ok = true;
    for (int i = (0); i < ((n)); i++) {
      for (int j = (i); j < (n); j++) {
        if (!b[j]) {
          for (int k = (j + 1); k < (n); k++) {
            if (a[i] > a[k]) {
              ok = false;
              break;
            }
          }
          if (!ok) break;
        }
      }
      if (!ok) break;
      for (int j = (i - 1); j < (0); j++) {
        if (!b[j]) {
          for (int k = (0); k < ((j + 1)); k++) {
            if (a[i] < a[k]) {
              ok = false;
              break;
            }
          }
          if (!ok) break;
        }
      }
      if (!ok) break;
    }
    cout << (ok ? "YES" : "NO") << '\n';
  }
}
