program A348209; {Requires that n<2^8 and a(n)<2^64; a(n)>0 must hold if n is not a power of 2.} var n,i:byte;v:word;k:qword;r:array[0..255] of byte;s:set of byte;b:boolean; begin write('n=');readln(n); if n=2 then k:=1 else begin k:=0;i:=n; while i mod 2=0 do i:=i div 2; if i>1 then begin r[0]:=1;for i:=1 to n do r[i]:=0;b:=false; repeat k:=k+1;v:=0; for i:=0 to n-1 do begin v:=2*r[i]+v;r[i]:=v mod n;v:=v div n end; if not b then b:=(r[n-1]>0); i:=0;s:=[]; repeat s:=s+[r[i]];i:=i+1 until r[i] in s until (i=n) and b end end; writeln('a(n)=',k) end.