import java.util.*;

public class Main{
public static void main(String[] args)
{ 
  Scanner sc=new Scanner(System.in);
  int x=sc.nextInt();
  int y=sc.nextInt();
  boolean flag=solve(x,y);
  System.out.println(flag?"Yes":"No");
}
  static boolean solve(int x,int y)
  {  if(y>x*4 || y%2==1) return false;
   
   if(2*x==y || 4*x==y)
      return true;
   
   if(y/2-x >=0 && 2*x -y/2 >=0)
     return true;
   
   return false;
   
  }
} import java.util.*; util.* java public class Main{
public static void main(String[] args)
{ 
  Scanner sc=new Scanner(System.in);
  int x=sc.nextInt();
  int y=sc.nextInt();
  boolean flag=solve(x,y);
  System.out.println(flag?"Yes":"No");
}
  static boolean solve(int x,int y)
  {  if(y>x*4 || y%2==1) return false;
   
   if(2*x==y || 4*x==y)
      return true;
   
   if(y/2-x >=0 && 2*x -y/2 >=0)
     return true;
   
   return false;
   
  }
} Main public static void main(String[] args)
{ 
  Scanner sc=new Scanner(System.in);
  int x=sc.nextInt();
  int y=sc.nextInt();
  boolean flag=solve(x,y);
  System.out.println(flag?"Yes":"No");
} main { 
  Scanner sc=new Scanner(System.in);
  int x=sc.nextInt();
  int y=sc.nextInt();
  boolean flag=solve(x,y);
  System.out.println(flag?"Yes":"No");
} Scanner sc=new Scanner(System.in); sc new Scanner(System.in) int x=sc.nextInt(); x sc.nextInt() sc.nextInt sc int y=sc.nextInt(); y sc.nextInt() sc.nextInt sc boolean flag=solve(x,y); flag solve(x,y) solve x y System.out.println(flag?"Yes":"No") System.out.println System.out System System.out flag?"Yes":"No" flag "Yes" "No" String[] args args static boolean solve(int x,int y)
  {  if(y>x*4 || y%2==1) return false;
   
   if(2*x==y || 4*x==y)
      return true;
   
   if(y/2-x >=0 && 2*x -y/2 >=0)
     return true;
   
   return false;
   
  } solve {  if(y>x*4 || y%2==1) return false;
   
   if(2*x==y || 4*x==y)
      return true;
   
   if(y/2-x >=0 && 2*x -y/2 >=0)
     return true;
   
   return false;
   
  } if(y>x*4 || y%2==1) return false; y>x*4 || y%2==1 y>x*4 y x*4 x 4 y%2==1 y%2 y 2 1 return false; false if(2*x==y || 4*x==y)
      return true; 2*x==y || 4*x==y 2*x==y 2*x 2 x y 4*x==y 4*x 4 x y return true; true if(y/2-x >=0 && 2*x -y/2 >=0)
     return true; y/2-x >=0 && 2*x -y/2 >=0 y/2-x >=0 y/2-x y/2 y 2 x 0 2*x -y/2 >=0 2*x -y/2 2*x 2 x y/2 y 2 0 return true; true return false; false int x x int y y public class Main{
public static void main(String[] args)
{ 
  Scanner sc=new Scanner(System.in);
  int x=sc.nextInt();
  int y=sc.nextInt();
  boolean flag=solve(x,y);
  System.out.println(flag?"Yes":"No");
}
  static boolean solve(int x,int y)
  {  if(y>x*4 || y%2==1) return false;
   
   if(2*x==y || 4*x==y)
      return true;
   
   if(y/2-x >=0 && 2*x -y/2 >=0)
     return true;
   
   return false;
   
  }
} public class Main{
public static void main(String[] args)
{ 
  Scanner sc=new Scanner(System.in);
  int x=sc.nextInt();
  int y=sc.nextInt();
  boolean flag=solve(x,y);
  System.out.println(flag?"Yes":"No");
}
  static boolean solve(int x,int y)
  {  if(y>x*4 || y%2==1) return false;
   
   if(2*x==y || 4*x==y)
      return true;
   
   if(y/2-x >=0 && 2*x -y/2 >=0)
     return true;
   
   return false;
   
  }
} Main
import java.util.*;

public class Main{
public static void main(String[] args)
{ 
  Scanner sc=new Scanner(System.in);
  int x=sc.nextInt();
  int y=sc.nextInt();
  boolean flag=solve(x,y);
  System.out.println(flag?"Yes":"No");
}
  static boolean solve(int x,int y)
  {  if(y>x*4 || y%2==1) return false;
   
   if(2*x==y || 4*x==y)
      return true;
   
   if(y/2-x >=0 && 2*x -y/2 >=0)
     return true;
   
   return false;
   
  }
}
