func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   ostream& operator<<(ostream& os, const vector<T>& v) {     for (T i : v) os << i <<    ;     return os;   }   template <class T>   ostream& operator<<(ostream& os, const set<T>& v) {     for (T i : v) os << i <<    ;     return os;   }   template <class T, class S>   ostream& operator<<(ostream& os, const pair<T, S>& v) {     os << v.first <<     << v.second;     return os;   }   template <class T, class S>   ostream& operator<<(ostream& os, const unordered_map<T, S>& v) {     for (auto i : v) os <<  (  << i.first <<  =>  << i.second <<  )  <<    ;     return os;   }   #pragma GCC optimize( O3 )   #pragma GCC optimize( unroll-loops )   #pragma GCC target(         avx2,sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native )   const long long inf = 1e18;   const long long mod = 1e9 + 7;   void fast() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);   }   clock_t time_p = clock();   void starboy1299() {     time_p = clock() - time_p;     cerr <<  Time Taken :   << (float)(time_p) / CLOCKS_PER_SEC <<   n ;   }   const long long N = 5e5 + 5;   void solve() {     long long n, p;     cin >> n >> p;     for (long long i = 1; i <= 32; i++) {       long long val = n - p * i;       long long temp = __builtin_popcount(val);       if (temp <= i and val >= i) {         cout << i <<   n ;         return;       }     }     cout << -1 <<   n ;   }   int32_t main() {     fast();     long long t = 1;     for (long long i = 1; i <= t; i++) {       solve();     }     starboy1299();   }   