#include <bits/stdc++.h>
using namespace std;
int v[101], cnt[101], aux[101];
bool good(int* v, int n, int m) {
  memset(aux, 0, sizeof(aux));
  for (int i = 0; i < n; i++) {
    aux[v[i]]++;
  }
  for (int i = 1; i <= m; i++)
    if (aux[i] != cnt[i]) return false;
  return true;
}
int main() {
  ios::sync_with_stdio(false);
  int n, m, l;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) cin >> v[i];
  for (int i = 1; i <= m; i++) {
    cin >> cnt[i];
  }
  l = 0;
  for (int i = 1; i <= m; i++) {
    l += cnt[i];
  }
  int i;
  for (i = 1; i <= n - l + 1; i++) {
    if (good(v + i, l, m)) {
      break;
    }
  }
  if (i <= n - l + 1) {
    cout << "YES\n";
  } else {
    cout << "NO\n";
  }
  return 0;
}
