// C + T = X
// 2 * C + 4 * T = Y
// T = X - C
// 2 * C + 4 * (X - C) = Y
// - 2 * C = Y - 4 * X
// C = 2 * X - Y / 2
// T = -X + Y / 2

import java.io.*;

public class Main {
    public static void main (String[] args) throws Exception {
        BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in));
        String[] arr = reader.readLine().split (" ");
        int X, Y;
        X = Integer.parseInt (arr[0]);
        Y = Integer.parseInt (arr[1]);
        int C, T;
        C = 2 * X - Y / 2;
        T = -X + Y / 2;
        System.out.println (0 <= C && 0 <= T && 2 * C + 4 * T == Y && C + T == X
                                ? "Yes"
                                : "No");
        return;
    }
} import java.io.*; io.* java public class Main {
    public static void main (String[] args) throws Exception {
        BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in));
        String[] arr = reader.readLine().split (" ");
        int X, Y;
        X = Integer.parseInt (arr[0]);
        Y = Integer.parseInt (arr[1]);
        int C, T;
        C = 2 * X - Y / 2;
        T = -X + Y / 2;
        System.out.println (0 <= C && 0 <= T && 2 * C + 4 * T == Y && C + T == X
                                ? "Yes"
                                : "No");
        return;
    }
} Main public static void main (String[] args) throws Exception {
        BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in));
        String[] arr = reader.readLine().split (" ");
        int X, Y;
        X = Integer.parseInt (arr[0]);
        Y = Integer.parseInt (arr[1]);
        int C, T;
        C = 2 * X - Y / 2;
        T = -X + Y / 2;
        System.out.println (0 <= C && 0 <= T && 2 * C + 4 * T == Y && C + T == X
                                ? "Yes"
                                : "No");
        return;
    } main {
        BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in));
        String[] arr = reader.readLine().split (" ");
        int X, Y;
        X = Integer.parseInt (arr[0]);
        Y = Integer.parseInt (arr[1]);
        int C, T;
        C = 2 * X - Y / 2;
        T = -X + Y / 2;
        System.out.println (0 <= C && 0 <= T && 2 * C + 4 * T == Y && C + T == X
                                ? "Yes"
                                : "No");
        return;
    } BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in)); reader new BufferedReader (new InputStreamReader (System.in)) String[] arr = reader.readLine().split (" "); arr reader.readLine().split (" ") reader.readLine().split reader.readLine() reader.readLine reader " " int X X Y; Y X = Integer.parseInt (arr[0]) X Integer.parseInt (arr[0]) Integer.parseInt Integer arr[0] arr 0 Y = Integer.parseInt (arr[1]) Y Integer.parseInt (arr[1]) Integer.parseInt Integer arr[1] arr 1 int C C T; T C = 2 * X - Y / 2 C 2 * X - Y / 2 2 * X 2 X Y / 2 Y 2 T = -X + Y / 2 T -X + Y / 2 -X X Y / 2 Y 2 System.out.println (0 <= C && 0 <= T && 2 * C + 4 * T == Y && C + T == X
                                ? "Yes"
                                : "No") System.out.println System.out System System.out 0 <= C && 0 <= T && 2 * C + 4 * T == Y && C + T == X
                                ? "Yes"
                                : "No" 0 <= C && 0 <= T && 2 * C + 4 * T == Y && C + T == X 2 * C + 4 * T == Y 0 <= C && 0 <= T && 2 * C + 4 * T == Y && C + T == X 0 <= C 0 C 0 <= T 0 T 2 * C + 4 * T == Y 2 * C + 4 * T 2 * C 2 C 4 * T 4 T Y C + T == X C + T C T X "Yes" "No" return; String[] args args public class Main {
    public static void main (String[] args) throws Exception {
        BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in));
        String[] arr = reader.readLine().split (" ");
        int X, Y;
        X = Integer.parseInt (arr[0]);
        Y = Integer.parseInt (arr[1]);
        int C, T;
        C = 2 * X - Y / 2;
        T = -X + Y / 2;
        System.out.println (0 <= C && 0 <= T && 2 * C + 4 * T == Y && C + T == X
                                ? "Yes"
                                : "No");
        return;
    }
} public class Main {
    public static void main (String[] args) throws Exception {
        BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in));
        String[] arr = reader.readLine().split (" ");
        int X, Y;
        X = Integer.parseInt (arr[0]);
        Y = Integer.parseInt (arr[1]);
        int C, T;
        C = 2 * X - Y / 2;
        T = -X + Y / 2;
        System.out.println (0 <= C && 0 <= T && 2 * C + 4 * T == Y && C + T == X
                                ? "Yes"
                                : "No");
        return;
    }
} Main
// C + T = X
// 2 * C + 4 * T = Y
// T = X - C
// 2 * C + 4 * (X - C) = Y
// - 2 * C = Y - 4 * X
// C = 2 * X - Y / 2
// T = -X + Y / 2

import java.io.*;

public class Main {
    public static void main (String[] args) throws Exception {
        BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in));
        String[] arr = reader.readLine().split (" ");
        int X, Y;
        X = Integer.parseInt (arr[0]);
        Y = Integer.parseInt (arr[1]);
        int C, T;
        C = 2 * X - Y / 2;
        T = -X + Y / 2;
        System.out.println (0 <= C && 0 <= T && 2 * C + 4 * T == Y && C + T == X
                                ? "Yes"
                                : "No");
        return;
    }
}