// 思考レベル1: ビットごとの排他的論理和たらいう概念を理解 2つのビットのうちいずれかが1でいずれかが0
// 思考レベル2: 実験すると最下位ビットが立ってると奇数なので、自分が奇数のとき、両隣のうちいずれか片方が奇数で他方が偶数である必要がある。自分が偶数のとき、両方が奇数もしくは偶数である必要がある
// 並べると偶奇奇偶奇奇偶奇奇....で2/3が奇数、1/3が偶数になる。この場合は長さが3の倍数でなくてはならない
// あるいは偶偶偶偶偶偶偶...でぜんぶ偶数の場合である

package main

import "fmt"

func main() {
	var N int
	fmt.Scan(&N)
	odds, evens := 0, 0
	for i := 0; i < N; i++ {
		var V int
		fmt.Scan(&V)
		if V%2 == 0 {
			evens += 1
		} else {
			odds += 1
		}
	}
	if evens == N {
		fmt.Println("Yes")
	} else if odds == 2*evens {
		fmt.Println("Yes")
	} else {
		fmt.Println("No")
	}
}
