uses crt;
var st:string;
i:byte;
begin
clrscr;
readln(st);
while pos(' ',st)<>0 do delete(st,pos(' ',st),1);
if st[length(st)]=' ' then delete(st,length(st),1);
if st[1]<>' ' then st:=' '+st;
for i:=2 to length(st) do
if st[i-1]=' ' then
st[i]:=upcase(st[i])
else
if st[i] in ['A'..'Z'] then
st[i]:=chr(ord(st[i])+32);
delete(st,1,1);
writeln(st);
readln;
end.