program hhh; const nmax=300;
type tarr=array[0..nmax] of integer;
var a:tarr; i,j,r,w,n:integer;
procedure print(const a:tarr);
var i: integer;
Begin
write(a[a[0]]);
for i:=a[0]-1 downto 1 do write(abs(1));
writeln;
end;
Begin
writeln('vv chislo fakt kot nado pods ') ;
readln(n);
a[0]:=1; a[1]:=1; j:=2;
while (j<=n) and (a[0] r:=0; i:=1;
while(i<=a[0]) or (r<>0) do begin
w:=a[i]*j+r;
a[i]:= w mod 10;
r:=w div 10;
if a[a[0]+1]<>0 then inc(a[0]);
inc(i);
end;
inc(j);
end;
for i:=a[0] downto 1 do write(a[i]);
writeln;
readln;
print(a);
end.