var s:string;
use:array[1..10] of boolean;
i,k:integer;
a:array[1..10] of real;
function work(a,b,p:real):real;
begin
if p=1 then exit(a+b);
if p=2 then if a>b then exit(a/b) else exit(b/a);
if p=3 then exit(abs(a-b));
if p=4 then exit(a*b);
end;
procedure try(o:integer);
var i,j:integer;
begin
if a[7]=24 then begin writeln('yes');halt end;
for i:=1 to o do
for j:=1 to o do
if (i<>j) and (not use[i])and(not use[j]) then
begin
use[i]:=true;use[j]:=true;
for k:=1 to 4 do
begin
use[o+1]:=false;
a[o+1]:=work(a[i],a[j],k);
try(o+1);
end;
use[i]:=false;use[j]:=false;
end;
end;
begin
read(s);
k:=0;
for i:=1 to length(s) do
begin
if s[i] in ['2'..'9'] then begin inc(k);a[k]:=ord(s[i])-ord('0');end;
if s[i]='A' then begin inc(k);a[k]:=1;end;
if s[i]='1' then begin inc(k);a[k]:=10;end;
if s[i]='J' then begin inc(k);a[k]:=11;end;
if s[i]='Q' then begin inc(k);a[k]:=12;end;
if s[i]='K' then begin inc(k);a[k]:=13;end;
end;
try(4);
writeln('no');
end.