#include <bits/stdc++.h>
using namespace std;
long long int bigMod(long long int A, long long int P, int M) {
  long long int R = 1;
  for (A %= M; P; P >>= 1) {
    if (P & 1) R = (R * A) % M;
    A = (A * A) % M;
  }
  return R;
}
long long int bigMul(long long int A, long long int B, long long int M) {
  long long int R = 0;
  for (A %= M; B; B >>= 1) {
    if (B & 1) R = (R + A) % M;
    A = (A + A) % M;
  }
  return R;
}
long long int negMod(long long int A, long long int B) {
  return (((A % B) + B) % B);
}
long long int invMod(long long int A, long long int M) {
  return bigMod(A, M - 2, M);
}
unsigned long long int _pow(unsigned long long int A, int P) {
  unsigned long long int R = 1;
  for (; P; P >>= 1) {
    if (P & 1) R = (R * A);
    A = (A * A);
  }
  return R;
}
template <class T>
T GCD(T x, T y) {
  while (x) x ^= y ^= x ^= y %= x;
  return y;
}
template <class T>
T LCM(T x, T y) {
  return (x / GCD(x, y)) * y;
}
vector<int> prim;
void SieveOfEratosthenes(int n) {
  bool prime[n + 1];
  memset(prime, true, sizeof(prime));
  int np = 0;
  for (int p = 2; p * p <= n; p++) {
    if (prime[p] == true) {
      for (int i = p * 2; i <= n; i += p) {
        prime[i] = false;
        np++;
      }
    }
  }
  cout << 2 << endl;
  for (int p = 2; p <= n; p++)
    if (prime[p]) {
      printf("1 ");
    } else {
      printf("2 ");
    }
  cout << endl;
}
int main() {
  long long int n, k;
  scanf("%lld%lld", &n, &k);
  long long int ans = (n / k);
  if (ans & 1)
    printf("YES\n");
  else
    printf("NO\n");
  return 0;
}
