//editor: Jan Tang //problem: #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define set0(a) memset(a,0,sizeof(a)); #define CIN(a,n) for(int i=1;i<=n;i++) cin>>a[i]; typedef long long ll; typedef unsigned long long ull; const int Mod = 1e9+7; const int maxn = 100005; const int inf = 0x3f3f3f3f; int m,n; int a[100]; void pow2(){ a[0] = 1; for(int i = 1; i <= 30; i++) a[i] = a[i - 1] * 2; } /*==============================head==========================*/ int main(){ pow2(); int t;cin>>t; while(t--){ scanf("%d%d",&n,&m); int ans = 0; while(n){ for(int i = min( m, 30) ; i >= 0; i--){ if( n >= a[i] ){ ans += n / a[i]; n %= a[i]; } } } cout << ans << endl; } return 0; }