import java.util.*; import java.io.*; import java.awt.geom.*; import java.math.*; public class No0274 { static final Scanner in = new Scanner(System.in); static final PrintWriter out = new PrintWriter(System.out,false); static void solve() { int n = in.nextInt(); int m = in.nextInt(); boolean[] f = new boolean[m]; for (int i=0; i m-r-1) { int t = l; l = m - r - 1; r = m - t - 1; } // trace(f); boolean flag = true; for (int j=l; j<=r; j++) { if (f[j]) { flag = false; break; } } if (flag) { for (int j=l; j<=r; j++) { f[j] = true; } } else { int t = l; l = m - r - 1; r = m - t - 1; boolean flag2 = true; for (int j=l; j<=r; j++) { if (f[j]) { flag2 = false; break; } } if (flag2) { for (int j=l; j<=r; j++) { f[j] = true; } } else { out.println("NO"); return; } } } out.println("YES"); } public static void main(String[] args) { long start = System.currentTimeMillis(); solve(); out.flush(); long end = System.currentTimeMillis(); //trace(end-start + "ms"); in.close(); out.close(); } static void trace(Object... o) { System.out.println(Arrays.deepToString(o));} }