uses crt;
var n,tam:byte;
s,st,c:string;
procedure donvi(a:byte);
begin
case a of
0:s:='';
1:s:='one';
2:s:='two';
3:s:='three';
4:s:='four';
5:s:='five';
6:s:='six';
7:s:='seven';
8:s:='eight';
9:s:='nine';
end;
end;
procedure chuc(a:byte);
begin
case a of
2:st:='twenty';
3:st:='thirty';
4:st:='forty';
5:st:='fifty';
6:st:='sixty';
7:st:='seventy';
8:st:='eighty';
9:st:='ninety';
end;
end;
procedure ngoaile(a:byte);
var nl:string;
begin
case a of
10:nl:='ten';
11:nl:='eleven';
12:nl:='twelve';
13:nl:='thirteen';
14:nl:='fourteen';
15:nl:='fifteen';
16:nl:='sixteen';
17:nl:='seventeen';
18:nl:='eighteen';
19:nl:='nineteen';
end;
writeln(nl);
end;
begin
clrscr;
repeat
readln(n);
until (0<=n) and (n<=99);
if n=0 then
writeln('zero')
else
if (10<=n) and (n<=19) then
ngoaile(n)
else
if n<10 then
begin
donvi(n);
writeln(s);
end
else
begin
tam:=n mod 10;
donvi(tam);
tam:=n div 10;
chuc(tam);
c:=st+'-'+s;
if c[length(c)]='-' then delete(c,length(c),1);
writeln(c);
end;
readln;
end.