#include <bits/stdc++.h>
using namespace std;
int n, k, a[105], b[105], c[105];
bool flag, ok[205];
bool work() {
  for (int i = 1; i <= n; i++) {
    if (a[i] < a[i - 1]) return true;
  }
  return false;
}
void dfs(int i) {
  if (flag) return;
  for (int j = 1; j <= k; j++) {
    if (!ok[b[j]]) {
      ok[b[j]] = true;
      a[c[i]] = b[j];
      if (i == k) {
        if (work()) {
          flag = true;
          return;
        }
      } else {
        dfs(i + 1);
      }
      ok[b[j]] = false;
      a[c[i]] = b[j];
    }
  }
}
int main() {
  scanf("%d%d", &n, &k);
  int i, num = 0;
  a[0] = 0;
  for (i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    if (a[i] == 0) {
      num++;
      c[num] = i;
    }
  }
  for (i = 1; i <= k; i++) {
    scanf("%d", &b[i]);
  }
  flag = false;
  memset(ok, false, sizeof(ok));
  dfs(1);
  if (flag)
    printf("Yes\n");
  else
    printf("No\n");
  return 0;
}
