#include <iostream>
using namespace std;
bool flag;
int a[5][4];
int cal(int a,int b,int k){
if(k==0) return a+b;
else if(k==1) return a*b;
else if(k==2) return a-b;
else if(k==3&&(b==0||a%b!=0)) return -10007;
else return a/b;
}
void update(int num,int i,int j,int x){
a[num][0] = x;
int ii = 1,jj = 0;
while(ii<num){
while(jj==i||jj==j) jj++;
a[num][ii++] = a[num+1][jj];
}
// for(int m=0;m<num;m++) cout<<a[num][m]<<" ";
// cout<<endl;
}
void solve_dfs(int num){
if(flag) return;
if(num==1){
if(a[1][0]==24) flag = true;
return ;
}
else for(int i=0;i<num;i++){
for(int j=0;j<num;j++){
if(i==j) continue;
for(int k=0;k<4;k++){
int tmp = cal(a[num][i],a[num][j],k);
if(tmp==-10007||flag) continue;
update(num-1,i,j,tmp);
solve_dfs(num-1);
}
}
}
}
int main()
{
for(int i=0;i<4;i++) cin>>a[4][i];
solve_dfs(4);
if(flag) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
return 0;
}