N,p=[int(i) for i in input().split()]
A=sorted([int(i) for i in input().split()])
maxlen=0
for i in range(N): #一层循环
for j in range(i+maxlen,N): #二层循环开始,但是要进行跨越
if A[i]*p<A[j]: #探测数列的结尾点
break
maxlen+=1 #查找的数列长度
print(maxlen)
如果直接使用双重循环的话,会超时,因此在第二层循环上要做一些跳跃
解决超时的方式:每次探索的跨度,都要比前一次的长,少于的自动舍弃