#include using namespace std; #define REP(i,a,b) for(i=a;i'9')break;*x=(*x)*10+k-'0';}if(m)(*x)=-(*x);} void writer(ll x, char c){int s=0,m=0;char f[20];if(x<0)m=1,x=-x;while(x)f[s++]=x%10,x/=10;if(!s)f[s++]=0;if(m)mypc('-');while(s--)mypc(f[s]+'0');mypc(c);} template void writerLn(T x){writer(x,'\n');} template int extend(const char arr[], T res[]){int i,j,s=1,z=0;static int c[128],f=0;if(f==0)REP(i,33,127)if(i!=34&&i!=92)c[i]=f++;if(arr[0]<' ')return 0;res[0]=0;for(i=0;;i++){if(arr[i]<' ')break;if(c[arr[i]]<46)res[z]=res[z]*46+c[arr[i]];else{res[z]=res[z]*46+c[arr[i]]-46;if(s==-1)res[z]*=-1,s=1;res[++z]=0;}}return z;} const char *buf = "Q)(0'JS0EGD'e8@CIFi@>(B0oHG39Dy#!G=5Ex#*H8BKp#3-?6=o#;;>MHR#D-6-Ac#L5,>+z$&6L'0a$.IH,Aq$7)#*8T$?I!2#t$H3&G?f%!J&+#^%+CDF#}%4A.,*q%=ME@;l%EF@O7j%MMA:Jh&(04C)U&0E89+q&9h'.2-MMw'7:%8HZ'?K-?BV'H>/BFl(#4/NEa(,:'L5Z(5<6#8P(GLDD*P)#1371W)-&='Ar)4K9M*o)=%;:2R)E47'6z)MJ-AMc*(CM1Bg*1!*.#{*9@07Ga*B7BM5d*K8$H*a+&>!BHz+/#=(Ii+7D)'FP+@:2J3p+I@OADf,$C+AMP,-C36%|,7$A5/KX15$)3GF)/q@-[>'L->'}>1F(-AW><%O0>P>F41?It?!ND6Jr?*C*4Hh?2K4$K}?;,1H!V?CC'/7l?L>:=Nw@&I?M3f@/;##Op@84=.;Q@A4F>1|@J5B'LSA$K%1N&OK*_B,NJ7<|B640)?qB@&/,'mBH4!%)mC#%GLCyC+K?/3dC4N&9(~C>&8-DpCG$;K/nD!5M-2:NEdDG9,AGXE!I.KGWE,25G2UE5N#B.sE?6-EFPEI--MTFI#/7ObG$'-5$QG-,+4cG?;<.5nGHL)EDVH$@&+;sH-9:%JVH6@-4'TH?O(?,UHI:/C7XI%&G*>^I.=+1NVI845MLfIB0&!@nIL3!IMmJ'.@<&}J08I)KsJ9EO%DRJC5>$=`JLJ:HHdK(9*'6SK2.M@LQKGPKF)'#2bKO?@.'jL+6D4DyL52/FC[L?<8*!jLI6=J%TM%D2*#`M0%9E+yM:=-<)iMBK-F)RMK=$K1kN&4G1;^N/72G=SN8=>:,xNA;EE)iNJM)F2{O&-=#1PO/Oo##2>=&3{##;H;D$r##E'?'GT##NE/%3|#$*-8/>a#$3H?-FZ#$=>4M9b#$G>IL8Z#%#9CO7}#%,OHH;p#%6FK.@u#%@B:KCU#%JLH$Ek#&&FEK-e#&1&9;*{#&;5&,0v#&F#A69v#&NH!J&n#'*#FM7a#'3084&U#'P#).JJ5Bl#)9)%B)Y#)C!'EHS#)M.71L~#*);&:0s#*41D=:g#*=;IOO{#*G.D:Om#+#%2;Eh#+-,:D0n#+7(#M;b#+A.+7Nf#+K;:E:P#,():A9n#,2.0>/a#,<2NLD]#,F@/$<|#-#-#:%v#--B60Kf#-8/B05u#-C%/6Dj#-N*H$Ll#.(HAM*_#.0K0BBo#.90''8h#/-4&!Je#/6-9LFg#/?*8!5n#/H=6B(l#0!EF80x#0+6B*@_#04/!9Ib#0=/*17[#0F8=$Mq#0O5O:%q#1*EJ?JY#14!E'Ny#1=C6CKS#1F0C(1[#1NL@!,Z#2)DOK0r#22BNO8k#2<%6*Bx#2DI&;7d#2N$?H6X#3)1(/9}#32N!9Gt#3<+)E?y#3E+5%Bl#3N;'6Hh#4)NB@.o#43E,2O~#4=&9&7w#4FH9.G}#5!=G82l#5,G.ID`#556)3)Y#5>%!7%Z#5FJ7L!p#5OHJ&Af#6+*/=#b#63O5IB^#6=+,O+u#6F8&EHf#7!'3I:r#7+2$J1e#742#1$T#7=B.',X#7G')G<[#8!JE=5j#8,.L.1DY#:CM0GIY#:M0JLGg#;)$GA7]#;2H'A0{#;=#L+4g#;FK7:I^#<#&+G$n#<-3.5JR#<8#A1;y#<@GL4Ic#S#=$.+D#H7!+o#>-70C)]#>6B7.Mk#>?B?JMQ#>I$7$Cs#?$8)ALv#?..9/._#?7=L<.c#?A1M!4P#?K'-M6c#@'0G96y#@02%p#A'MNK&Z#A14:>>f#A;,9F.Y#AE&9;&Q#AO0N*Ew#B*@$N8m#B44$3!o#B>)3;Ai#BH2BE-`#C$-CK%d#C.4>-Cs#C8A;(5~#CC1C7@f#CL=7):c#D'D!.O_#D1!=EAR#D:9!ANs#DD*9!&S#DM>)*$Q#E)6+5>X#E3/K;7`#E==A1DP#EFGOI4}#F!:LNNQ#F,14@,3?U#HHM:;Fx#I%4=%,h#I/G%@5s#I9E=L5k#ID%'G7e#IN8K,5]#J+&M!>T#J5;'51n#J@06.;}#JK.H)!v#K'+>$1|#K/B/G=W#K8@,J+V#KA1N.5[#KJ;'8Fp#L%86%He#L.3FD%l$(H?IOAV$)$96*?R$).G9K8v$)9%JI$P$)CH+(>U$)M=E'&]$*)IAAN[$*4(3&9o$*>K;AAo$*I+.KLq$+%NN3!k$+0E67-r$+;E#!Na$+D<2GM*4Op$-HE&83W$.$?0->r$..K00?p$.8DL<+h$.C%)@>i$.M1:'8~$/*%+HGh$/30<%K}$/=#BF3p$/FGLE?Q$0#!FJ5z$0,K*E$i$07#>.1s"; ull arr[530]; #define SSE4_M32U_popcount(c,a) asm volatile("popcnt %1, %0;" : "=r"(c) : "r"(a)) #define SSE4_M64U_popcount(c,a) {unsigned U_S_1=a>>32,U_S_2=a; SSE4_M32U_popcount(U_S_1,U_S_1); SSE4_M32U_popcount(U_S_2,U_S_2); c=U_S_1+U_S_2;} int main(){ int j, k; ll i, x, N; extend(buf, arr); reader(&N); for(i=0;;i++) if(arr[i+1] > N) break; x = arr[i]; i *= 100000001; i++; while(x < N){ i++; SSE4_M64U_popcount(j,x); x += j; } if(x!=N) i = -1; writerLn(i); return 0; }