#include <bits/stdc++.h>
using namespace std;
int n, k, cnt2, cnt4, x, cnt1, flag = 1, dy, num, a[10010];
void del4() {
  while (x > 4 && cnt4 >= 1) {
    x -= 4;
    cnt4--;
  }
}
void del2() {
  while (x > 4 && cnt2 >= 1) {
    x -= 2;
    cnt2--;
  }
}
void del1() {
  while (x > 4 && cnt1 >= 1) {
    x -= 1;
    cnt1--;
  }
}
int main() {
  scanf("%d%d", &n, &k);
  cnt2 = n * 2;
  cnt4 = n;
  for (int i = 1; i <= k; i++) {
    scanf("%d", &a[i]);
    num += a[i];
  }
  dy = 8 * n - num;
  for (int i = 1; i <= k; i++) {
    x = a[i];
    if (x > 4) del4();
    if (x > 4) del2();
    if (x > 4) del1();
    if (x == 3) {
      if (dy == 0) {
        if (cnt1 + 2 * cnt2 >= 3 && cnt1) {
          if (cnt2 >= 2) {
            cnt1 -= 1;
            cnt2--;
          } else {
            cnt1 -= 3 - 2 * cnt2;
            cnt2 = 0;
          }
        } else
          flag = 0;
      } else {
        if (cnt4 >= 1) {
          cnt4--;
          dy--;
        } else if (cnt2 >= 2) {
          cnt2 -= 2;
          dy--;
        } else if (cnt1 + 2 * cnt2 >= 3) {
          cnt1 -= 3 - 2 * cnt2;
          cnt2 = 0;
        } else
          flag = 0;
      }
    }
    if (x == 2) {
      if (dy == 0) {
        if (cnt2 >= 1)
          cnt2--;
        else if (cnt1 >= 2)
          cnt1 -= 2;
        else
          flag = 0;
      } else {
        if (cnt4 >= 1) {
          cnt4--;
          cnt1++;
          dy--;
        } else if (cnt2 >= 1)
          cnt2--;
        else if (cnt1 >= 2)
          cnt1 -= 2;
        else
          flag = 0;
      }
    }
    if (x == 1) {
      if (dy == 0) {
        if (cnt1 >= 1)
          cnt1--;
        else
          flag = 0;
      } else {
        if (cnt4 >= 1) {
          cnt4--;
          cnt2++;
          dy--;
        } else if (cnt2 >= 1) {
          cnt2--;
          dy--;
        } else if (cnt1 >= 1)
          cnt1--;
        else
          flag = 0;
      }
    }
  }
  if (flag)
    puts("YES");
  else
    puts("NO");
  return 0;
}
