import java.io.*;
import java.util.*;

/**
 * Created by Ayushi on 14 Jun 2020.
 * Problem:
 * Round:
 */

public class Main {
    public static void main(String[] args) throws IOException {
        StringTokenizer st;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        st = new StringTokenizer(br.readLine(), " ");
        int x = Integer.parseInt(st.nextToken());
        int y = Integer.parseInt(st.nextToken());
        br.close();

        if (((y % 2) == 0) && ((x - ((y - (2 * x)) / 2)) >= 0) && ((2*x) <= y)) {
            System.out.println("Yes");
        }
        else {
            System.out.println("No");
        }
    }
} import java.io.*; io.* java import java.util.*; util.* java public class Main {
    public static void main(String[] args) throws IOException {
        StringTokenizer st;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        st = new StringTokenizer(br.readLine(), " ");
        int x = Integer.parseInt(st.nextToken());
        int y = Integer.parseInt(st.nextToken());
        br.close();

        if (((y % 2) == 0) && ((x - ((y - (2 * x)) / 2)) >= 0) && ((2*x) <= y)) {
            System.out.println("Yes");
        }
        else {
            System.out.println("No");
        }
    }
} Main public static void main(String[] args) throws IOException {
        StringTokenizer st;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        st = new StringTokenizer(br.readLine(), " ");
        int x = Integer.parseInt(st.nextToken());
        int y = Integer.parseInt(st.nextToken());
        br.close();

        if (((y % 2) == 0) && ((x - ((y - (2 * x)) / 2)) >= 0) && ((2*x) <= y)) {
            System.out.println("Yes");
        }
        else {
            System.out.println("No");
        }
    } main {
        StringTokenizer st;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        st = new StringTokenizer(br.readLine(), " ");
        int x = Integer.parseInt(st.nextToken());
        int y = Integer.parseInt(st.nextToken());
        br.close();

        if (((y % 2) == 0) && ((x - ((y - (2 * x)) / 2)) >= 0) && ((2*x) <= y)) {
            System.out.println("Yes");
        }
        else {
            System.out.println("No");
        }
    } StringTokenizer st; st BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) st = new StringTokenizer(br.readLine(), " ") st new StringTokenizer(br.readLine(), " ") int x = Integer.parseInt(st.nextToken()); x Integer.parseInt(st.nextToken()) Integer.parseInt Integer st.nextToken() st.nextToken st int y = Integer.parseInt(st.nextToken()); y Integer.parseInt(st.nextToken()) Integer.parseInt Integer st.nextToken() st.nextToken st br.close() br.close br if (((y % 2) == 0) && ((x - ((y - (2 * x)) / 2)) >= 0) && ((2*x) <= y)) {
            System.out.println("Yes");
        }
        else {
            System.out.println("No");
        } ((y % 2) == 0) && ((x - ((y - (2 * x)) / 2)) >= 0) && ((2*x) <= y) ((y % 2) == 0) && ((x - ((y - (2 * x)) / 2)) >= 0) && ((2*x) <= y) ((y % 2) == 0) (y % 2) y 2 0 ((x - ((y - (2 * x)) / 2)) >= 0) (x - ((y - (2 * x)) / 2)) x ((y - (2 * x)) / 2) (y - (2 * x)) y (2 * x) 2 x 2 0 ((2*x) <= y) (2*x) 2 x y {
            System.out.println("Yes");
        } System.out.println("Yes") System.out.println System.out System System.out "Yes" {
            System.out.println("No");
        } System.out.println("No") System.out.println System.out System System.out "No" String[] args args public class Main {
    public static void main(String[] args) throws IOException {
        StringTokenizer st;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        st = new StringTokenizer(br.readLine(), " ");
        int x = Integer.parseInt(st.nextToken());
        int y = Integer.parseInt(st.nextToken());
        br.close();

        if (((y % 2) == 0) && ((x - ((y - (2 * x)) / 2)) >= 0) && ((2*x) <= y)) {
            System.out.println("Yes");
        }
        else {
            System.out.println("No");
        }
    }
} public class Main {
    public static void main(String[] args) throws IOException {
        StringTokenizer st;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        st = new StringTokenizer(br.readLine(), " ");
        int x = Integer.parseInt(st.nextToken());
        int y = Integer.parseInt(st.nextToken());
        br.close();

        if (((y % 2) == 0) && ((x - ((y - (2 * x)) / 2)) >= 0) && ((2*x) <= y)) {
            System.out.println("Yes");
        }
        else {
            System.out.println("No");
        }
    }
} Main
import java.io.*;
import java.util.*;

/**
 * Created by Ayushi on 14 Jun 2020.
 * Problem:
 * Round:
 */

public class Main {
    public static void main(String[] args) throws IOException {
        StringTokenizer st;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        st = new StringTokenizer(br.readLine(), " ");
        int x = Integer.parseInt(st.nextToken());
        int y = Integer.parseInt(st.nextToken());
        br.close();

        if (((y % 2) == 0) && ((x - ((y - (2 * x)) / 2)) >= 0) && ((2*x) <= y)) {
            System.out.println("Yes");
        }
        else {
            System.out.println("No");
        }
    }
}
