type long=array [1..201] of longint; var x,z,ar:long; k,nx,nz:longint; i,w,n,u,y,s:longint; Procedure cem(var x,z:long; var nx,nz:longint); var p,q,i:longint; Begin p:=0; For i:=1 to nz do Begin q:=x[i]+z[i]+p; z[i]:=q mod 10; p:=q div 10; End; If p=1 then Begin nz:=nz+1; inc(u); z[nz]:=1; End; End; procedure bolme(b:longint); var a,i:longint; begin if (b=k-2) then a:=1 else a:=2; i:=201; repeat dec(i); if a>b then begin ar[i]:=a div b; a:=a mod b; end; a:=a*10; until (a=0) or (i=1); end; Procedure multiple(var x,z:long; var nx,nz,t:longint); var p,q,i:integer; Begin For i:=1 to nx do Begin q:=x[i]*t+p; z[i]:=q mod 10; p:=q div 10; End; z[i+1]:=p; if z[i+1]<>0 then nz:=i+1 else nz:=i; End; begin readln(n); k:=-1; repeat inc(k,4); nx:=200; nz:=200; if k-2=n then bolme(k-2) else bolme(k*(k-2)); cem(ar,z,nx,nz); for w:=1 to nz do ar[w]:=0; until (k=n) or (k-2=n); inc(u); y:=-1; s:=4; nx:=200; for w:=1 to 200 do ar[w]:=z[w]; multiple(ar,z,nx,nz,s); For w:=nz downto 1 do begin inc(y); if u=y then write(','); Write(z[w]); end; readln; End.