''' Hey stalker :) '''
INF = 10**10
def main():
    print = out.append
    ''' Cook your dish here! '''
    n, k = get_list()
    print("YES") if k<=(n+1)//2 else print("NO")

''' Pythonista fLite 1.1 '''
import sys
from collections import defaultdict, Counter
from bisect import bisect_left, bisect_right
#from functools import reduce
import math
input = iter(sys.stdin.buffer.read().decode().splitlines()).__next__
out = []
get_int = lambda: int(input())
get_list = lambda: list(map(int, input().split()))
main()
#[main() for _ in range(int(input()))]
print(*out, sep='\n') ''' Hey stalker :) ''' INF = 10**10 INF 10**10 10 10 def main():
    print = out.append
    ''' Cook your dish here! '''
    n, k = get_list()
    print("YES") if k<=(n+1)//2 else print("NO") main print = out.append print out.append out append ''' Cook your dish here! ''' n, k = get_list() n get_list() get_list k print("YES") if k<=(n+1)//2 else print("NO") k<=(n+1)//2 k (n+1)//2 n+1 n 1 2 print("YES") print "YES" print("NO") print "NO" ''' Pythonista fLite 1.1 ''' import sys sys from collections import defaultdict, Counter from bisect import bisect_left, bisect_right import math math input = iter(sys.stdin.buffer.read().decode().splitlines()).__next__ input iter(sys.stdin.buffer.read().decode().splitlines()).__next__ (sys.stdin.buffer.read().decode().splitlines()) iter sys.stdin.buffer.read().decode().splitlines() sys.stdin.buffer.read().decode().splitlines sys.stdin.buffer.read().decode() sys.stdin.buffer.read().decode sys.stdin.buffer.read() sys.stdin.buffer.read sys.stdin.buffer sys.stdin sys stdin buffer read decode splitlines __next__ out = [] out [] get_int = lambda: int(input()) get_int lambda: int(input()) int(input()) int input() input get_list = lambda: list(map(int, input().split())) get_list lambda: list(map(int, input().split())) list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split main() main print(*out, sep='\n') print *out out sep='\n' sep '\n' out = [] [] out get_int = lambda: int(input()) lambda: int(input()) get_int get_list = lambda: list(map(int, input().split())) lambda: list(map(int, input().split())) get_list INF = 10**10 10**10 INF def main():
    print = out.append
    ''' Cook your dish here! '''
    n, k = get_list()
    print("YES") if k<=(n+1)//2 else print("NO") def main():
    print = out.append
    ''' Cook your dish here! '''
    n, k = get_list()
    print("YES") if k<=(n+1)//2 else print("NO") main input = iter(sys.stdin.buffer.read().decode().splitlines()).__next__ iter(sys.stdin.buffer.read().decode().splitlines()).__next__ input
''' Hey stalker :) '''
INF = 10**10
def main():
    print = out.append
    ''' Cook your dish here! '''
    n, k = get_list()
    print("YES") if k<=(n+1)//2 else print("NO")

''' Pythonista fLite 1.1 '''
import sys
from collections import defaultdict, Counter
from bisect import bisect_left, bisect_right
#from functools import reduce
import math
input = iter(sys.stdin.buffer.read().decode().splitlines()).__next__
out = []
get_int = lambda: int(input())
get_list = lambda: list(map(int, input().split()))
main()
#[main() for _ in range(int(input()))]
print(*out, sep='\n')
