import sys, math, re
from functools import lru_cache
from collections import defaultdict
sys.setrecursionlimit(500000)
MOD = 10**9+7

def input():
    return sys.stdin.readline()[:-1]

def mi():
    return map(int, input().split())

def ii():
    return int(input())

def i2(n):
    tmp = [list(mi()) for i in range(n)]
    return [list(i) for i in zip(*tmp)]


def main():
    N, K = mi()
    if (N+1)//2 >= K:
        print('YES')
    else:
        print('NO')

if __name__ == '__main__':
    main() import sys, math, re sys math re from functools import lru_cache from collections import defaultdict sys.setrecursionlimit(500000) sys.setrecursionlimit sys setrecursionlimit 500000 MOD = 10**9+7 MOD 10**9+7 10**9 10 9 7 def input():
    return sys.stdin.readline()[:-1] input return sys.stdin.readline()[:-1] sys.stdin.readline()[:-1] sys.stdin.readline() sys.stdin.readline sys.stdin sys stdin readline :-1 -1 def mi():
    return map(int, input().split()) mi return map(int, input().split()) map(int, input().split()) map int input().split() ().split () input split def ii():
    return int(input()) ii return int(input()) int(input()) int input() input def i2(n):
    tmp = [list(mi()) for i in range(n)]
    return [list(i) for i in zip(*tmp)] i2 list(mi()) for i in range(n) for i in range(n) i range(n) range n for i in range(n) list(mi()) list mi() mi tmp = [list(mi()) for i in range(n)] tmp [list(mi()) for i in range(n)] list(i) for i in zip(*tmp) for i in zip(*tmp) i zip(*tmp) zip *tmp tmp for i in zip(*tmp) list(i) list i return [list(i) for i in zip(*tmp)] [list(i) for i in zip(*tmp)] n n def main():
    N, K = mi()
    if (N+1)//2 >= K:
        print('YES')
    else:
        print('NO') main N, K = mi() N mi() mi K if (N+1)//2 >= K:
        print('YES')
    else:
        print('NO') (N+1)//2 >= K (N+1)//2 N+1 N 1 2 K print('YES') print 'YES' print('NO') print 'NO' if __name__ == '__main__':
    main() __name__ == '__main__' __name__ '__main__' main() main MOD = 10**9+7 10**9+7 MOD def i2(n):
    tmp = [list(mi()) for i in range(n)]
    return [list(i) for i in zip(*tmp)] def i2(n):
    tmp = [list(mi()) for i in range(n)]
    return [list(i) for i in zip(*tmp)] i2 def input():
    return sys.stdin.readline()[:-1] def input():
    return sys.stdin.readline()[:-1] input def ii():
    return int(input()) def ii():
    return int(input()) ii def main():
    N, K = mi()
    if (N+1)//2 >= K:
        print('YES')
    else:
        print('NO') def main():
    N, K = mi()
    if (N+1)//2 >= K:
        print('YES')
    else:
        print('NO') main def mi():
    return map(int, input().split()) def mi():
    return map(int, input().split()) mi
import sys, math, re
from functools import lru_cache
from collections import defaultdict
sys.setrecursionlimit(500000)
MOD = 10**9+7

def input():
    return sys.stdin.readline()[:-1]

def mi():
    return map(int, input().split())

def ii():
    return int(input())

def i2(n):
    tmp = [list(mi()) for i in range(n)]
    return [list(i) for i in zip(*tmp)]


def main():
    N, K = mi()
    if (N+1)//2 >= K:
        print('YES')
    else:
        print('NO')

if __name__ == '__main__':
    main()