#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<cmath>#include<stack>#include<queue>#include<set>#include<map>usingnamespace std;constint maxn =100001;typedeflonglong ll;//二分法intmain(){freopen("1.txt","r",stdin);int n,m,num[maxn];
cin>>n>>m;for(int i =0;i<n;i++){
cin>>num[i];}sort(num,num+n);int ans =1;if(num[n-1]<= num[0]* m)
ans = n;else{for(int i =0;i<n;i++){int j =upper_bound(num+i,num+n,(ll)num[i]* m)- num;
ans =max(ans,j-i);}}
cout<<ans;return0;}
#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<cmath>#include<stack>#include<queue>#include<set>#include<map>usingnamespace std;constint maxn =100001;typedeflonglong ll;//two pointsintmain(){freopen("1.txt","r",stdin);int n,m,num[maxn];
cin>>n>>m;for(int i =0;i<n;i++){
cin>>num[i];}sort(num,num+n);int ans =1;int i =0, j =0;while(i<n && j<n){while(j<n && num[j]<=(longlong)num[i]* m){
ans =max(ans , j-i+1);
j++;}
i++;}
cout<<ans;return0;}