#include <bits/stdc++.h>
using namespace std;
const int N = 10001;
int a[N];
int n, k;
int main() {
  scanf("%d %d", &n, &k);
  for (int i = 0; i < k; i++) scanf("%d", &a[i]);
  int cnt = 0;
  sort(a, a + k);
  int twos = n * 2;
  int space1 = 0;
  int space2 = 0;
  int fours = n;
  int m = a[k - 1];
  while (fours > 0 && m > 0) {
    m = 0;
    for (int i = k - 1; i >= 0 && fours > 0; i--) {
      m = max(m, a[i]);
      int av = a[i] - 4;
      if (av < 0 && a[i] != 0) {
        fours--;
        if (a[i] == 1) space2++;
        if (a[i] == 2) space1++;
        a[i] = 0;
      } else if (av >= 0) {
        fours--;
        a[i] -= 4;
        i++;
      }
    }
    sort(a, a + k);
  }
  m = 1;
  sort(a, a + k);
  while (space2 > 0 && m > 0) {
    m = 0;
    for (int i = k - 1; i >= 0 && space2 > 0; i--) {
      m = max(m, a[i]);
      int av = a[i] - 2;
      if (av < 0 && a[i] != 0) {
        space2--;
        a[i] = 0;
      } else if (av >= 0) {
        space2--;
        a[i] -= 2;
        i++;
      }
    }
    sort(a, a + k);
  }
  m = 1;
  while (twos > 0 && m > 0) {
    m = 0;
    for (int i = k - 1; i >= 0 && twos > 0; i--) {
      m = max(m, a[i]);
      int av = a[i] - 2;
      if (av < 0 && a[i] != 0) {
        twos--;
        a[i] = 0;
      } else if (av >= 0) {
        twos--;
        a[i] -= 2;
        i++;
      }
    }
  }
  m = 1;
  while (space1 > 0 && m > 0) {
    m = 0;
    for (int i = k - 1; i >= 0 && space1 > 0; i--) {
      m = max(m, a[i]);
      int av = a[i] - 1;
      if (av < 0 && a[i] != 0) {
        space1--;
        a[i] = 0;
      } else if (av >= 0) {
        space1--;
        a[i] -= 1;
        i++;
      }
    }
  }
  m = 0;
  for (int i = 0; i < k; i++) {
    m = max(m, a[i]);
  }
  if (m != 0) {
    printf("NO");
    return 0;
  } else {
    printf("YES");
    return 0;
  }
  return 0;
}
