private fun readLn() = readLine()!!
private fun readInt() = readLn().toInt()
private fun readStrings() = readLn().split(" ")
private fun readInts() = readStrings().map(String::toInt)
private fun readStrings2() = readLn().split("").filter { it.isNotEmpty() }
private fun readInts2() = readStrings2().map(String::toInt)
private fun initArray(n:Int, v:String) = Array(n) { v }
private fun initIntArray(n:Int, v:Int) = IntArray(n) { v }

fun main(args: Array<String>) {
    // X: 動物の総数 Y: 足の総数
    // 2本の足を持つ鶴
    // 4本の足を持つ亀
    val (X, Y) = readInts()

    var flag = false
    for (i in 0 .. X) {
        // 鶴=i
        val j = X - i
        val tmp = 2 * i + 4 * j
        if (tmp == Y) {
            println("Yes")
            flag = true
            break
        }
    }
    if(!flag) {
        println("No")
    }
}