#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define FOR(i,c) for(__typeof((c).begin()) i=(c).begin();i!=(c).end();i++) #define ALL(x) (x).begin(),(x).end() #define CASET2 int ___T, case_n = 1; scanf("%d ", &___T); while ((___T > 0 ? printf("Case #%d:\n", case_n++) : 0), ___T-- > 0) #define CASET1 int ___T, case_n = 1; scanf("%d ", &___T); while ((___T > 0 ? printf("Case #%d: ", case_n++) : 0), ___T-- > 0) #define CASET int ___T; scanf("%d ", &___T); while (___T-- > 0) #define SZ(X) ((int)(X).size()) #define LEN(X) strlen(X) #define REP(i,n) for(int i=0;i=(b);i--) #define REPL(i,x) for(int i=0;x[i];i++) #define PER(i,n) for(int i=(n)-1;i>=0;i--) #define RI1(x) scanf("%d",&x) #define RI2(x,y) RI1(x), RI1(y) #define RI3(x,y...) RI1(x), RI2(y) #define RI4(x,y...) RI1(x), RI3(y) #define RI5(x,y...) RI1(x), RI4(y) #define RI6(x,y...) RI1(x), RI5(y) #define GET_MACRO(_1, _2, _3, _4, _5, _6, NAME, ...) NAME #define RI(argv...) GET_MACRO(argv, RI6, RI5, RI4, RI3, RI2, RI1)(argv) #define DRI(argv...) int argv;RI(argv) #define WRI(argv...) while (RI(argv) != EOF) #define DWRI(x...) int x; WRI(x) #define RS(x) scanf("%s",x) #define MP make_pair #define PB push_back #define MS0(x) memset(x,0,sizeof(x)) #define MS1(x) memset(x,-1,sizeof(x)) #define X first #define Y second #define V(x) vector typedef long double LD; typedef pair PII; typedef vector VI; typedef long long LL; const int INF = 1000000000; void print(int i) { printf("%d", i); } template void PI(T i) { print(i); puts(""); } template void PIS(T i) { print(i); printf(" "); } template void PV(T const &v, int N) { REP(i, N) { print(v[i]); printf("%c", i == N-1 ? '\n' : ' '); } } template void PV(T const &v) { PV(v, SZ(v)); } template bool has_bit(T mask, S i) { return (mask >> i) & 1; } long long shift(int i) { return 1ll << i; } template void mini(C&a4, C b4){a4=min(a4, b4); } template void maxi(C&a4, C b4){a4=max(a4, b4); } int popcount(int x) { return __builtin_popcount(x); } int popcount(long long x) { return __builtin_popcountll(x); } #define DRL(x) LL x; RL(x) #ifndef LOCAL #define PL(x) printf("%I64d\n",x) #define RL(x) scanf("%I64d\n",&x) #else #define PL(x) printf("%lld\n",x) #define RL(x) scanf("%lld\n",&x) #endif int main() { #ifdef CPP11 static_assert(false, "CPP11"); #endif CASET { DRI(N, M); M = min(M, 30); int ans = 0; PER1(i, M, 0) { if (N >= (1 << i)) { ans += (N >> i); N = N % (1 << i); } } PI(ans); } return 0; }