#include <bits/stdc++.h>
using namespace std;
int main() {
  unsigned int n, k;
  cin >> n >> k;
  vector<unsigned int> primes;
  vector<unsigned int>::iterator piter;
  primes.push_back(2);
  for (int i = 3; i <= n; i++) {
    bool flag = true;
    piter = primes.begin();
    while (piter != primes.end() && (i % (*piter))) {
      piter++;
    }
    if (piter == primes.end()) {
      primes.push_back(i);
    }
  }
  int i = 0, j = 0;
  while ((i < primes.size() - 1) && (primes[i] + primes[i + 1] + 1 <= n)) {
    unsigned int t = primes[i] + primes[i + 1] + 1;
    piter = find(primes.begin(), primes.end(), t);
    if (piter != primes.end()) {
      j++;
    }
    i++;
  }
  if (j < k)
    cout << "NO" << endl;
  else
    cout << "YES" << endl;
  return 0;
}
