#include <iostream>
using namespace std;
int check = 0;
void find_magic (string s)
{
int len = s.length();
string S1="", S2="", S3="";
if (len >= 1) S1 = S1 + s[0];
if (len >= 2) S2 = S2 + s[0] + s[1];
if (len >= 3) S3 = S3 + s[0] + s[1] + s[2];
if (S1 == "1" && s.length()>=1)
{
if (len == 1)
{
check = 1;
return;
}
else find_magic (s.substr(1, s.length()-1));
}
if (S2 == "14" && len>=2)
{
if (len == 2)
{
check = 1;
return;
}
else find_magic (s.substr(2, s.length()-2));
}
if (S3 == "144" && len>=3)
{
if (len == 3)
{
check = 1;
return;
}
else find_magic (s.substr(3, s.length()-3));
}
return;
}
int main ()
{
string s;
cin>>s;
find_magic (s);
if (check == 1) cout<<"YES";
else cout<<"NO";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGNoZWNrID0gMDsKdm9pZCBmaW5kX21hZ2ljIChzdHJpbmcgcykKewogICAgaW50IGxlbiA9IHMubGVuZ3RoKCk7CiAgICBzdHJpbmcgUzE9IiIsIFMyPSIiLCBTMz0iIjsKICAgIGlmIChsZW4gPj0gMSkgUzEgPSBTMSArIHNbMF07CiAgICBpZiAobGVuID49IDIpIFMyID0gUzIgKyBzWzBdICsgc1sxXTsKICAgIGlmIChsZW4gPj0gMykgUzMgPSBTMyArIHNbMF0gKyBzWzFdICsgc1syXTsKICAgIGlmIChTMSA9PSAiMSIgJiYgcy5sZW5ndGgoKT49MSkKICAgIHsKICAgICAgICBpZiAobGVuID09IDEpCiAgICAgICAgewogICAgICAgICAgICBjaGVjayA9IDE7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgZWxzZSBmaW5kX21hZ2ljIChzLnN1YnN0cigxLCBzLmxlbmd0aCgpLTEpKTsKICAgIH0KICAgIGlmIChTMiA9PSAiMTQiICYmIGxlbj49MikKICAgIHsKICAgICAgICBpZiAobGVuID09IDIpCiAgICAgICAgewogICAgICAgICAgICBjaGVjayA9IDE7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgZWxzZSBmaW5kX21hZ2ljIChzLnN1YnN0cigyLCBzLmxlbmd0aCgpLTIpKTsKICAgIH0KICAgIGlmIChTMyA9PSAiMTQ0IiAmJiBsZW4+PTMpCiAgICB7CiAgICAgICAgaWYgKGxlbiA9PSAzKQogICAgICAgIHsKICAgICAgICAgICAgY2hlY2sgPSAxOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGVsc2UgZmluZF9tYWdpYyAocy5zdWJzdHIoMywgcy5sZW5ndGgoKS0zKSk7CiAgICB9CiAgICByZXR1cm47Cn0KCmludCBtYWluICgpCnsKICAgIHN0cmluZyBzOwogICAgY2luPj5zOwogICAgZmluZF9tYWdpYyAocyk7CiAgICBpZiAoY2hlY2sgPT0gMSkgY291dDw8IllFUyI7CiAgICBlbHNlIGNvdXQ8PCJOTyI7CiAgICByZXR1cm4gMDsKfQ==