package main

import (
	"fmt"
	"strconv"
)

/**
本质上就是0-1背包问题,只不过需要传入一半的sum值,即可解决问题。

*/

func solution(arr []int) string {
	sum := 0
	for _, val := range arr {
		sum += val
	}
	if sum%2 != 0 {
		return "No"
	}
	half := sum / 2
	dp := make([][]int, len(arr)+1)
	for i := range dp {
		dp[i] = make([]int, half+1)
	}
	//dp
	for r := 1; r < len(dp); r++ {
		for c := 1; c < len(dp[0]); c++ {
			if arr[r-1] > c {
				dp[r][c] = dp[r-1][c]
			} else {
				dp[r][c] = max(dp[r-1][c], dp[r-1][c-arr[r-1]]+arr[r-1])
			}
		}
	}
	if dp[len(dp)-1][len(dp[0])-1] == half {
		return "Yes"
	}
	return "No"
}

func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}

/*
*
输入:
1234567

输出:
Yes

说明:
将3、4、7染成红色即可,这样3+4+7=1+2+5+6
*/
func main() {
	var str string
	fmt.Scanln(&str)
	arr := make([]int, len(str))
	for i, _ := range str {
		ele, _ := strconv.Atoi(string(str[i]))
		arr[i] = ele
	}
	fmt.Println(solution(arr))
}