#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define rd(v) long v=0;{int _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;} #define wt(v) {long _z=v;do*--wp=_z%10+48;while(_z/=10);} #define min(a,b) (a<=b?a:b) #define max(a,b) (a>=b?a:b) long dp1[100002],dp2[100002]; main(){ char buf[64]; read(0,buf,sizeof buf); char*rp=buf; rd(n); rd(k); long l=k/(long)sqrt(k); dp1[1]=1; for(long i=n;i>=2;--i){ { long jmod=0,jdiv=0; long e=min(k/l,i*k+i-1+1); for(long j=1;je;--j){ dp2[ki/j]+=dp1[j]; } for(;j>0;--j){ dp1[j*i]+=dp1[j]; } } } long res=0; { int e=k/l; for(long j=1;j0;--j){ res+=dp1[j]; } } char*wp=buf+sizeof buf; wt(res*2-1); write(1,wp,buf+sizeof buf-wp); _exit(0); }